diff --git a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml b/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml deleted file mode 100644 index 19a0609c4..000000000 --- a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml +++ /dev/null @@ -1,408 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: products_category - - label: - identifier: - id: product_name - type: label - localIdentifier: products_product_name - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: quantity - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: percent_revenue_in_category - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: revenue - resultSpec: - dimensions: - - itemIdentifiers: - - products_category - - products_product_name - localIdentifier: dim_0 - - itemIdentifiers: - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1128' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 4b12a06a-487e-46d5-9d60-488e15b57c40 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: products_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: products_product_name - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: quantity - - localIdentifier: price - - localIdentifier: percent_revenue_in_category - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: revenue - format: $#,##0 - name: Revenue - localIdentifier: dim_1 - links: - executionResult: f6a00a91124ea1040b01c1b8831adb92ba7f5ba4:e6b88a13de23c82db3678aa8f42c5d60a1b645f5fa3d308fbe393dd69ac4e41f - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f6a00a91124ea1040b01c1b8831adb92ba7f5ba4%3Ae6b88a13de23c82db3678aa8f42c5d60a1b645f5fa3d308fbe393dd69ac4e41f?offset=0%2C0&limit=512%2C256 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3913' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 449.0 - - 14172.94 - - 0.17725916115332446 - - 16744.48 - - - 172.0 - - 7085.17 - - 0.07819070840973427 - - 7386.15 - - - 727.0 - - 15526.79 - - 0.18452791227743862 - - 17431.11 - - - 854.0 - - 15245.54 - - 0.17461697017263958 - - 16494.89 - - - 557.0 - - 16808.84 - - 0.19551673364684496 - - 18469.15 - - - 1096.0 - - 17039.34 - - 0.1898885143400181 - - 17937.49 - - - 149.0 - - 14153.1 - - 0.15973175146727148 - - 14421.37 - - - 253.0 - - 12370.9 - - 0.14394284849088326 - - 12995.87 - - - 571.0 - - 40159.21 - - 0.48763974231358437 - - 44026.52 - - - 735.0 - - 17357.08 - - 0.20868565772826095 - - 18841.17 - - - 144.0 - - 4569.47 - - 0.06838997246733888 - - 4725.73 - - - 258.0 - - 16834.96 - - 0.25553420960278433 - - 17657.35 - - - 386.0 - - 37281.63 - - 0.5833271466249879 - - 40307.76 - - - 542.0 - - 5977.51 - - 0.09274867130488894 - - 6408.91 - - - 147.0 - - 30956.84 - - 0.16556859291478074 - - 34697.71 - - - 58.0 - - 29355.68 - - 0.13199641470235435 - - 27662.09 - - - 63.0 - - 43015.28 - - 0.22793065968694112 - - 47766.74 - - - 71.0 - - 92554.17 - - 0.47450433269592374 - - 99440.44 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Polo Shirt - primaryLabelValue: Polo Shirt - - attributeHeader: - labelValue: Pullover - primaryLabelValue: Pullover - - attributeHeader: - labelValue: Shorts - primaryLabelValue: Shorts - - attributeHeader: - labelValue: Skirt - primaryLabelValue: Skirt - - attributeHeader: - labelValue: Slacks - primaryLabelValue: Slacks - - attributeHeader: - labelValue: T-Shirt - primaryLabelValue: T-Shirt - - attributeHeader: - labelValue: Artego - primaryLabelValue: Artego - - attributeHeader: - labelValue: Compglass - primaryLabelValue: Compglass - - attributeHeader: - labelValue: Magnemo - primaryLabelValue: Magnemo - - attributeHeader: - labelValue: PortaCode - primaryLabelValue: PortaCode - - attributeHeader: - labelValue: Applica - primaryLabelValue: Applica - - attributeHeader: - labelValue: ChalkTalk - primaryLabelValue: ChalkTalk - - attributeHeader: - labelValue: Optique - primaryLabelValue: Optique - - attributeHeader: - labelValue: Peril - primaryLabelValue: Peril - - attributeHeader: - labelValue: Biolid - primaryLabelValue: Biolid - - attributeHeader: - labelValue: Elentrix - primaryLabelValue: Elentrix - - attributeHeader: - labelValue: Integres - primaryLabelValue: Integres - - attributeHeader: - labelValue: Neptide - primaryLabelValue: Neptide - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - grandTotals: [] - paging: - count: - - 18 - - 4 - offset: - - 0 - - 0 - total: - - 18 - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml b/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml deleted file mode 100644 index 167c6d2c9..000000000 --- a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml +++ /dev/null @@ -1,180 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: quantity - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: percent_revenue_in_category - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: revenue - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '465' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 79955fb8-cc71-4521-9c15-675b013d1c74 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: quantity - - localIdentifier: price - - localIdentifier: percent_revenue_in_category - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: revenue - format: $#,##0 - name: Revenue - localIdentifier: dim_0 - links: - executionResult: 56975cbe08024d150757b5a5de1b64c3e3948ff1:8e1cadd7ffa3122dec261230119d721fb0982535710e64bc682a98d4b800bd8a - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/56975cbe08024d150757b5a5de1b64c3e3948ff1%3A8e1cadd7ffa3122dec261230119d721fb0982535710e64bc682a98d4b800bd8a?offset=0&limit=256 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '345' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 7232.0 - - 430464.45 - - 1.0 - - 463414.93 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - grandTotals: [] - paging: - count: - - 4 - offset: - - 0 - total: - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml b/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml deleted file mode 100644 index d4a406112..000000000 --- a/packages/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml +++ /dev/null @@ -1,199 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: products_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: quantity - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: revenue - resultSpec: - dimensions: - - itemIdentifiers: - - products_category - localIdentifier: dim_0 - - itemIdentifiers: - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '689' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - c113c082-69db-4625-965c-ae1e30da11cd - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: products_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: quantity - - localIdentifier: revenue - format: $#,##0 - name: Revenue - localIdentifier: dim_1 - links: - executionResult: 3c592204c3c06ac180cb7f07a42fe7293d7f5c34:b8f99c102eff20475276527c4de48f016d8fd5a17dc08369f311a59999b3f5f9 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3c592204c3c06ac180cb7f07a42fe7293d7f5c34%3Ab8f99c102eff20475276527c4de48f016d8fd5a17dc08369f311a59999b3f5f9?offset=0%2C0&limit=512%2C256 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '655' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 3855.0 - - 94463.27 - - - 1708.0 - - 90284.93 - - - 1330.0 - - 69099.75 - - - 339.0 - - 209566.98 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 4 - - 2 - offset: - - 0 - - 0 - total: - - 4 - - 2 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml b/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml deleted file mode 100644 index e70807c8b..000000000 --- a/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml +++ /dev/null @@ -1,680 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '5096' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - title: Revenue and Quantity by Product and Category - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_and_quantity_by_product_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_in_category - type: metric - - id: revenue - type: metric - facts: - data: - - id: quantity - type: fact - - id: price - type: fact - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - - id: customer_name - type: label - type: visualizationObject - included: - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Revenue - description: '' - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - type: metric - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: '% Revenue in Category' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - type: metric - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - - label: - identifier: - id: product_name - type: label - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: AVG - computeRatio: false - filters: [] - localIdentifier: aa6391acccf1452f8011201aef9af492 - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - resultSpec: - dimensions: - - itemIdentifiers: - - 06bc6b3b9949466494e4f594c11f1bff - - 192668bfb6a74e9ab7b5d1ce7cb68ea3 - localIdentifier: dim_0 - sorting: - - attribute: - attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff - sortType: DEFAULT - - itemIdentifiers: - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1235' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 9d5d2daa-64d8-40e2-9797-81abd09b70aa - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - localIdentifier: aa6391acccf1452f8011201aef9af492 - - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - format: $#,##0 - name: Revenue - localIdentifier: dim_1 - links: - executionResult: a48fff91153e53681fe1835a1790259611b24d2f:41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a48fff91153e53681fe1835a1790259611b24d2f%3A41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9?offset=0%2C0&limit=512%2C256 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4089' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 449.0 - - 41.320524781341106 - - 0.17725916115332446 - - 16744.48 - - - 172.0 - - 46.30830065359477 - - 0.07819070840973427 - - 7386.15 - - - 727.0 - - 26.586969178082192 - - 0.18452791227743862 - - 17431.11 - - - 854.0 - - 21.873084648493546 - - 0.17461697017263958 - - 16494.89 - - - 557.0 - - 36.620566448801746 - - 0.19551673364684496 - - 18469.15 - - - 1096.0 - - 18.500912052117265 - - 0.1898885143400181 - - 17937.49 - - - 149.0 - - 115.06585365853658 - - 0.15973175146727148 - - 14421.37 - - - 253.0 - - 57.807943925233644 - - 0.14394284849088326 - - 12995.87 - - - 571.0 - - 86.17856223175966 - - 0.48763974231358437 - - 44026.52 - - - 735.0 - - 28.59485996705107 - - 0.20868565772826095 - - 18841.17 - - - 144.0 - - 37.45467213114754 - - 0.06838997246733888 - - 4725.73 - - - 258.0 - - 76.52254545454545 - - 0.25553420960278433 - - 17657.35 - - - 386.0 - - 114.36082822085889 - - 0.5833271466249879 - - 40307.76 - - - 542.0 - - 12.718106382978723 - - 0.09274867130488894 - - 6408.91 - - - 147.0 - - 260.141512605042 - - 0.16556859291478074 - - 34697.71 - - - 58.0 - - 553.8807547169812 - - 0.13199641470235435 - - 27662.09 - - - 63.0 - - 811.6090566037736 - - 0.22793065968694112 - - 47766.74 - - - 71.0 - - 1568.7147457627118 - - 0.47450433269592374 - - 99440.44 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Polo Shirt - primaryLabelValue: Polo Shirt - - attributeHeader: - labelValue: Pullover - primaryLabelValue: Pullover - - attributeHeader: - labelValue: Shorts - primaryLabelValue: Shorts - - attributeHeader: - labelValue: Skirt - primaryLabelValue: Skirt - - attributeHeader: - labelValue: Slacks - primaryLabelValue: Slacks - - attributeHeader: - labelValue: T-Shirt - primaryLabelValue: T-Shirt - - attributeHeader: - labelValue: Artego - primaryLabelValue: Artego - - attributeHeader: - labelValue: Compglass - primaryLabelValue: Compglass - - attributeHeader: - labelValue: Magnemo - primaryLabelValue: Magnemo - - attributeHeader: - labelValue: PortaCode - primaryLabelValue: PortaCode - - attributeHeader: - labelValue: Applica - primaryLabelValue: Applica - - attributeHeader: - labelValue: ChalkTalk - primaryLabelValue: ChalkTalk - - attributeHeader: - labelValue: Optique - primaryLabelValue: Optique - - attributeHeader: - labelValue: Peril - primaryLabelValue: Peril - - attributeHeader: - labelValue: Biolid - primaryLabelValue: Biolid - - attributeHeader: - labelValue: Elentrix - primaryLabelValue: Elentrix - - attributeHeader: - labelValue: Integres - primaryLabelValue: Integres - - attributeHeader: - labelValue: Neptide - primaryLabelValue: Neptide - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - grandTotals: [] - paging: - count: - - 18 - - 4 - offset: - - 0 - - 0 - total: - - 18 - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml b/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml deleted file mode 100644 index fcedaa8f6..000000000 --- a/packages/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml +++ /dev/null @@ -1,680 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '5096' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - title: Revenue and Quantity by Product and Category - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_and_quantity_by_product_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_in_category - type: metric - - id: revenue - type: metric - facts: - data: - - id: quantity - type: fact - - id: price - type: fact - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - - id: customer_name - type: label - type: visualizationObject - included: - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Revenue - description: '' - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - type: metric - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: '% Revenue in Category' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - type: metric - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - - label: - identifier: - id: product_name - type: label - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: AVG - computeRatio: false - filters: [] - localIdentifier: aa6391acccf1452f8011201aef9af492 - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - resultSpec: - dimensions: - - itemIdentifiers: - - 06bc6b3b9949466494e4f594c11f1bff - - 192668bfb6a74e9ab7b5d1ce7cb68ea3 - localIdentifier: dim_0 - sorting: - - attribute: - attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff - sortType: DEFAULT - - itemIdentifiers: - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1235' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0ac6459b-2f46-4e7a-9620-f171b8094880 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - localIdentifier: aa6391acccf1452f8011201aef9af492 - - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - format: $#,##0 - name: Revenue - localIdentifier: dim_1 - links: - executionResult: a48fff91153e53681fe1835a1790259611b24d2f:41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a48fff91153e53681fe1835a1790259611b24d2f%3A41a18ba83d92626b6782bb70d16a3c934861331096315dacb4f57b290cf6cbb9?offset=0%2C0&limit=512%2C256 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4089' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 449.0 - - 41.320524781341106 - - 0.17725916115332446 - - 16744.48 - - - 172.0 - - 46.30830065359477 - - 0.07819070840973427 - - 7386.15 - - - 727.0 - - 26.586969178082192 - - 0.18452791227743862 - - 17431.11 - - - 854.0 - - 21.873084648493546 - - 0.17461697017263958 - - 16494.89 - - - 557.0 - - 36.620566448801746 - - 0.19551673364684496 - - 18469.15 - - - 1096.0 - - 18.500912052117265 - - 0.1898885143400181 - - 17937.49 - - - 149.0 - - 115.06585365853658 - - 0.15973175146727148 - - 14421.37 - - - 253.0 - - 57.807943925233644 - - 0.14394284849088326 - - 12995.87 - - - 571.0 - - 86.17856223175966 - - 0.48763974231358437 - - 44026.52 - - - 735.0 - - 28.59485996705107 - - 0.20868565772826095 - - 18841.17 - - - 144.0 - - 37.45467213114754 - - 0.06838997246733888 - - 4725.73 - - - 258.0 - - 76.52254545454545 - - 0.25553420960278433 - - 17657.35 - - - 386.0 - - 114.36082822085889 - - 0.5833271466249879 - - 40307.76 - - - 542.0 - - 12.718106382978723 - - 0.09274867130488894 - - 6408.91 - - - 147.0 - - 260.141512605042 - - 0.16556859291478074 - - 34697.71 - - - 58.0 - - 553.8807547169812 - - 0.13199641470235435 - - 27662.09 - - - 63.0 - - 811.6090566037736 - - 0.22793065968694112 - - 47766.74 - - - 71.0 - - 1568.7147457627118 - - 0.47450433269592374 - - 99440.44 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Polo Shirt - primaryLabelValue: Polo Shirt - - attributeHeader: - labelValue: Pullover - primaryLabelValue: Pullover - - attributeHeader: - labelValue: Shorts - primaryLabelValue: Shorts - - attributeHeader: - labelValue: Skirt - primaryLabelValue: Skirt - - attributeHeader: - labelValue: Slacks - primaryLabelValue: Slacks - - attributeHeader: - labelValue: T-Shirt - primaryLabelValue: T-Shirt - - attributeHeader: - labelValue: Artego - primaryLabelValue: Artego - - attributeHeader: - labelValue: Compglass - primaryLabelValue: Compglass - - attributeHeader: - labelValue: Magnemo - primaryLabelValue: Magnemo - - attributeHeader: - labelValue: PortaCode - primaryLabelValue: PortaCode - - attributeHeader: - labelValue: Applica - primaryLabelValue: Applica - - attributeHeader: - labelValue: ChalkTalk - primaryLabelValue: ChalkTalk - - attributeHeader: - labelValue: Optique - primaryLabelValue: Optique - - attributeHeader: - labelValue: Peril - primaryLabelValue: Peril - - attributeHeader: - labelValue: Biolid - primaryLabelValue: Biolid - - attributeHeader: - labelValue: Elentrix - primaryLabelValue: Elentrix - - attributeHeader: - labelValue: Integres - primaryLabelValue: Integres - - attributeHeader: - labelValue: Neptide - primaryLabelValue: Neptide - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - grandTotals: [] - paging: - count: - - 18 - - 4 - offset: - - 0 - - 0 - total: - - 18 - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml b/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml deleted file mode 100644 index c1a2269a8..000000000 --- a/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml +++ /dev/null @@ -1,2109 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '20717' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: campaign_channel_id - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: campaign_channels.category - type: label - type: attribute - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - areRelationsValid: true - sourceColumn: campaign_id - sourceColumnDataType: INT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaigns - type: dataset - labels: - data: - - id: campaign_id - type: label - type: attribute - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - areRelationsValid: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaigns - type: dataset - labels: - data: - - id: campaign_name - type: label - type: attribute - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - areRelationsValid: true - sourceColumn: customer_id - sourceColumnDataType: INT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: customer_id - type: label - type: attribute - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - areRelationsValid: true - sourceColumn: customer_name - sourceColumnDataType: STRING - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: customer_name - type: label - type: attribute - - attributes: - title: Date - Date - description: Date - tags: - - Date - granularity: DAY - areRelationsValid: true - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.day - type: label - type: attribute - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - granularity: MONTH - areRelationsValid: true - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: attribute - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - granularity: QUARTER - areRelationsValid: true - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.quarter - type: label - type: attribute - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - granularity: WEEK - areRelationsValid: true - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.week - type: label - type: attribute - - attributes: - title: Date - Year - description: Year - tags: - - Date - granularity: YEAR - areRelationsValid: true - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.year - type: label - type: attribute - - attributes: - title: Order id - description: Order id - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_id - sourceColumnDataType: STRING - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_id - type: label - type: attribute - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_line_id - sourceColumnDataType: STRING - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_line_id - type: label - type: attribute - - attributes: - title: Order status - description: Order status - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_status - sourceColumnDataType: STRING - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_status - type: label - type: attribute - - attributes: - title: Product id - description: Product id - tags: - - Products - areRelationsValid: true - sourceColumn: product_id - sourceColumnDataType: INT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_id - type: label - type: attribute - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - areRelationsValid: true - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - meta: - origin: - originId: demo - originType: NATIVE - relationships: - defaultView: - data: - id: state - type: label - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: state - type: label - - id: geo__state__location - type: label - type: attribute - - attributes: - title: Type - description: Type - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: type - sourceColumnDataType: STRING - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: type - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Order status - description: Order status - tags: - - Order lines - primary: true - sourceColumn: order_status - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status - type: label - - attributes: - title: Order lines - description: Order lines - tags: - - Order lines - grain: - - id: order_line_id - type: attribute - referenceProperties: - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - dataType: INT - target: - id: product_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - dataType: INT - target: - id: customer_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - workspaceDataFilterColumns: - - name: wdf__state - dataType: STRING - - name: wdf__region - dataType: STRING - workspaceDataFilterReferences: - - filterId: - id: wdf__state - type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - - filterId: - id: wdf__region - type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL - id: order_lines - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines - type: dataset - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - primary: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name - type: label - - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - type: NORMAL - id: campaign_channels - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - type: dataset - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month - type: label - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter - type: label - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - primary: true - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id - type: label - - attributes: - title: Date - Date - description: Date - tags: - - Date - primary: true - sourceColumn: '' - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day - type: label - - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - dataSourceTablePath: - - demo - - campaigns - type: NORMAL - id: campaigns - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - type: dataset - - attributes: - title: Order id - description: Order id - tags: - - Order lines - primary: true - sourceColumn: order_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id - type: label - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: Type - description: Type - tags: - - Campaign channels - primary: true - sourceColumn: type - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type - type: label - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week - type: label - - attributes: - title: Location - description: Location - tags: - - Customers - primary: false - sourceColumn: geo__state__location - sourceColumnDataType: STRING - valueType: GEO - isNullable: true - id: geo__state__location - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location - type: label - - attributes: - title: Product id - description: Product id - tags: - - Products - primary: true - sourceColumn: product_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id - type: label - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - primary: true - sourceColumn: order_line_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - - attributes: - title: Date - description: '' - tags: - - Date - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - type: dataset - - attributes: - title: Category - description: Category - tags: - - Campaign channels - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category - type: label - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - primary: true - sourceColumn: customer_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id - type: label - - attributes: - title: Date - Year - description: Year - tags: - - Date - primary: true - sourceColumn: '' - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year - type: label - - attributes: - title: State - description: State - tags: - - Customers - primary: true - sourceColumn: state - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state - type: label - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - primary: true - sourceColumn: campaign_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '13921' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - areRelationsValid: true - type: NORMAL - id: campaign_channels - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: campaign_channel_id - type: attribute - - id: campaign_channels.category - type: attribute - - id: type - type: attribute - facts: - data: - - id: budget - type: fact - - id: spend - type: fact - type: dataset - - attributes: - title: Campaign channels per category - description: Campaign channels per categories - tags: - - Campaign channels per category - referenceProperties: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - dataType: STRING - target: - id: campaign_channel_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - sql: - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - dataSourceId: demo-test-ds - precedence: 1 - areRelationsValid: true - type: NORMAL - id: campaign_channels_per_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels_per_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - aggregatedFacts: - data: - - id: budget_agg - type: aggregatedFact - type: dataset - - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - dataSourceTablePath: - - demo - - campaigns - areRelationsValid: true - type: NORMAL - id: campaigns - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: campaign_id - type: attribute - - id: campaign_name - type: attribute - type: dataset - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - areRelationsValid: true - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: customer_id - type: attribute - - id: customer_name - type: attribute - - id: region - type: attribute - - id: state - type: attribute - type: dataset - - attributes: - title: Date - description: '' - tags: - - Date - areRelationsValid: true - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: date.day - type: attribute - - id: date.week - type: attribute - - id: date.month - type: attribute - - id: date.quarter - type: attribute - - id: date.year - type: attribute - type: dataset - - attributes: - title: Order lines - description: Order lines - tags: - - Order lines - grain: - - id: order_line_id - type: attribute - referenceProperties: - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - dataType: INT - target: - id: product_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - dataType: INT - target: - id: customer_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - areRelationsValid: true - workspaceDataFilterColumns: - - name: wdf__state - dataType: STRING - - name: wdf__region - dataType: STRING - workspaceDataFilterReferences: - - filterId: - id: wdf__state - type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - - filterId: - id: wdf__region - type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL - id: order_lines - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: order_id - type: attribute - - id: order_line_id - type: attribute - - id: order_status - type: attribute - facts: - data: - - id: price - type: fact - - id: quantity - type: fact - type: dataset - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - areRelationsValid: true - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: product_id - type: attribute - - id: product_name - type: attribute - - id: products.category - type: attribute - type: dataset - included: - - attributes: - title: Product id - description: Product id - tags: - - Products - sourceColumn: product_id - sourceColumnDataType: INT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id - type: attribute - - attributes: - title: Budget - description: Budget - tags: - - Campaign channels - sourceColumn: budget - sourceColumnDataType: NUMERIC - isNullable: true - id: budget - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget - type: fact - - attributes: - title: Date - Year - description: Year - tags: - - Date - granularity: YEAR - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year - type: attribute - - attributes: - title: Product name - description: Product name - tags: - - Products - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - type: attribute - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - granularity: MONTH - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - type: attribute - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - granularity: QUARTER - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter - type: attribute - - attributes: - title: Category - description: Category - tags: - - Campaign channels - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - type: attribute - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - granularity: WEEK - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week - type: attribute - - attributes: - title: Order id - description: Order id - tags: - - Order lines - sourceColumn: order_id - sourceColumnDataType: STRING - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id - type: attribute - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - sourceColumn: campaign_name - sourceColumnDataType: STRING - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name - type: attribute - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - description: Budget Agg - tags: - - Campaign channels per category - sourceColumn: budget - sourceColumnDataType: INT - operation: SUM - id: budget_agg - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg - type: aggregatedFact - - attributes: - title: Date - Date - description: Date - tags: - - Date - granularity: DAY - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - type: attribute - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id - type: attribute - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - sourceColumn: customer_id - sourceColumnDataType: INT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id - type: attribute - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - sourceColumn: campaign_id - sourceColumnDataType: INT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id - type: attribute - - attributes: - title: Type - description: Type - tags: - - Campaign channels - sourceColumn: type - sourceColumnDataType: STRING - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type - type: attribute - - attributes: - title: Spend - description: Spend - tags: - - Campaign channels - sourceColumn: spend - sourceColumnDataType: NUMERIC - isNullable: true - id: spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend - type: fact - - attributes: - title: Order status - description: Order status - tags: - - Order lines - sourceColumn: order_status - sourceColumnDataType: STRING - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status - type: attribute - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - sourceColumn: customer_name - sourceColumnDataType: STRING - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name - type: attribute - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - sourceColumn: order_line_id - sourceColumnDataType: STRING - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id - type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '10543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: '# of Active Customers' - areRelationsValid: true - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_active_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Orders' - areRelationsValid: true - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_orders - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Top Customers' - areRelationsValid: true - content: - format: '#,##0' - maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT - {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2025-08-07 11:45 - id: amount_of_top_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Valid Orders' - description: '' - areRelationsValid: true - content: - format: '#,##0.00' - maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: amount_of_valid_orders - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Campaign Spend - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - createdAt: 2025-08-07 11:45 - id: campaign_spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Order Amount - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2025-08-07 11:45 - id: order_amount - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2025-08-07 11:45 - id: percent_revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10 Customers' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10% Customers' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_percent_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10% Products' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_percent_products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10 Products' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue in Category' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue per Product' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - createdAt: 2025-08-07 11:45 - id: percent_revenue_per_product - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue - description: '' - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Clothing) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - createdAt: 2025-08-07 11:45 - id: revenue-clothing - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Electronic) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - createdAt: 2025-08-07 11:45 - id: revenue-electronic - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Home) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - createdAt: 2025-08-07 11:45 - id: revenue-home - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Outdoor) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - createdAt: 2025-08-07 11:45 - id: revenue-outdoor - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue per Customer - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2025-08-07 11:45 - id: revenue_per_customer - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue per Dollar Spent - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2025-08-07 11:45 - id: revenue_per_dollar_spent - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue / Top 10 - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2025-08-07 11:45 - id: revenue_top_10 - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue / Top 10% - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2025-08-07 11:45 - id: revenue_top_10_percent - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Total Revenue - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2025-08-07 11:45 - id: total_revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Total Revenue (No Filters) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2025-08-07 11:45 - id: total_revenue-no_filters - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters - meta: - origin: - originId: demo - originType: NATIVE - type: metric - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 diff --git a/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml b/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml deleted file mode 100644 index 6c5c16714..000000000 --- a/packages/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml +++ /dev/null @@ -1,3727 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '20717' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: campaign_channel_id - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: campaign_channels.category - type: label - type: attribute - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - areRelationsValid: true - sourceColumn: campaign_id - sourceColumnDataType: INT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaigns - type: dataset - labels: - data: - - id: campaign_id - type: label - type: attribute - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - areRelationsValid: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaigns - type: dataset - labels: - data: - - id: campaign_name - type: label - type: attribute - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - areRelationsValid: true - sourceColumn: customer_id - sourceColumnDataType: INT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: customer_id - type: label - type: attribute - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - areRelationsValid: true - sourceColumn: customer_name - sourceColumnDataType: STRING - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: customer_name - type: label - type: attribute - - attributes: - title: Date - Date - description: Date - tags: - - Date - granularity: DAY - areRelationsValid: true - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.day - type: label - type: attribute - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - granularity: MONTH - areRelationsValid: true - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: attribute - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - granularity: QUARTER - areRelationsValid: true - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.quarter - type: label - type: attribute - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - granularity: WEEK - areRelationsValid: true - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.week - type: label - type: attribute - - attributes: - title: Date - Year - description: Year - tags: - - Date - granularity: YEAR - areRelationsValid: true - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.year - type: label - type: attribute - - attributes: - title: Order id - description: Order id - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_id - sourceColumnDataType: STRING - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_id - type: label - type: attribute - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_line_id - sourceColumnDataType: STRING - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_line_id - type: label - type: attribute - - attributes: - title: Order status - description: Order status - tags: - - Order lines - areRelationsValid: true - sourceColumn: order_status - sourceColumnDataType: STRING - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: order_lines - type: dataset - labels: - data: - - id: order_status - type: label - type: attribute - - attributes: - title: Product id - description: Product id - tags: - - Products - areRelationsValid: true - sourceColumn: product_id - sourceColumnDataType: INT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_id - type: label - type: attribute - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - areRelationsValid: true - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - meta: - origin: - originId: demo - originType: NATIVE - relationships: - defaultView: - data: - id: state - type: label - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: state - type: label - - id: geo__state__location - type: label - type: attribute - - attributes: - title: Type - description: Type - tags: - - Campaign channels - areRelationsValid: true - sourceColumn: type - sourceColumnDataType: STRING - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaign_channels - type: dataset - labels: - data: - - id: type - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Order status - description: Order status - tags: - - Order lines - primary: true - sourceColumn: order_status - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_status - type: label - - attributes: - title: Order lines - description: Order lines - tags: - - Order lines - grain: - - id: order_line_id - type: attribute - referenceProperties: - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - dataType: INT - target: - id: product_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - dataType: INT - target: - id: customer_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - workspaceDataFilterColumns: - - name: wdf__state - dataType: STRING - - name: wdf__region - dataType: STRING - workspaceDataFilterReferences: - - filterId: - id: wdf__state - type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - - filterId: - id: wdf__region - type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL - id: order_lines - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines - type: dataset - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - primary: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name - type: label - - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - type: NORMAL - id: campaign_channels - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - type: dataset - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month - type: label - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.quarter - type: label - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - primary: true - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channel_id - type: label - - attributes: - title: Date - Date - description: Date - tags: - - Date - primary: true - sourceColumn: '' - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.day - type: label - - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - dataSourceTablePath: - - demo - - campaigns - type: NORMAL - id: campaigns - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - type: dataset - - attributes: - title: Order id - description: Order id - tags: - - Order lines - primary: true - sourceColumn: order_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_id - type: label - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: Type - description: Type - tags: - - Campaign channels - primary: true - sourceColumn: type - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type - type: label - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.week - type: label - - attributes: - title: Location - description: Location - tags: - - Customers - primary: false - sourceColumn: geo__state__location - sourceColumnDataType: STRING - valueType: GEO - isNullable: true - id: geo__state__location - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location - type: label - - attributes: - title: Product id - description: Product id - tags: - - Products - primary: true - sourceColumn: product_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_id - type: label - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - primary: true - sourceColumn: order_line_id - sourceColumnDataType: STRING - valueType: TEXT - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/order_line_id - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - - attributes: - title: Date - description: '' - tags: - - Date - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - type: dataset - - attributes: - title: Category - description: Category - tags: - - Campaign channels - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category - type: label - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - primary: true - sourceColumn: customer_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_id - type: label - - attributes: - title: Date - Year - description: Year - tags: - - Date - primary: true - sourceColumn: '' - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.year - type: label - - attributes: - title: State - description: State - tags: - - Customers - primary: true - sourceColumn: state - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state - type: label - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - primary: true - sourceColumn: campaign_id - sourceColumnDataType: INT - valueType: TEXT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_id - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '13921' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - areRelationsValid: true - type: NORMAL - id: campaign_channels - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: campaign_channel_id - type: attribute - - id: campaign_channels.category - type: attribute - - id: type - type: attribute - facts: - data: - - id: budget - type: fact - - id: spend - type: fact - type: dataset - - attributes: - title: Campaign channels per category - description: Campaign channels per categories - tags: - - Campaign channels per category - referenceProperties: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - dataType: STRING - target: - id: campaign_channel_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - sql: - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - dataSourceId: demo-test-ds - precedence: 1 - areRelationsValid: true - type: NORMAL - id: campaign_channels_per_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels_per_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - aggregatedFacts: - data: - - id: budget_agg - type: aggregatedFact - type: dataset - - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - dataSourceTablePath: - - demo - - campaigns - areRelationsValid: true - type: NORMAL - id: campaigns - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: campaign_id - type: attribute - - id: campaign_name - type: attribute - type: dataset - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - areRelationsValid: true - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: customer_id - type: attribute - - id: customer_name - type: attribute - - id: region - type: attribute - - id: state - type: attribute - type: dataset - - attributes: - title: Date - description: '' - tags: - - Date - areRelationsValid: true - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: date.day - type: attribute - - id: date.week - type: attribute - - id: date.month - type: attribute - - id: date.quarter - type: attribute - - id: date.year - type: attribute - type: dataset - - attributes: - title: Order lines - description: Order lines - tags: - - Order lines - grain: - - id: order_line_id - type: attribute - referenceProperties: - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - dataType: INT - target: - id: product_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - dataType: INT - target: - id: customer_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT - target: - id: campaign_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - areRelationsValid: true - workspaceDataFilterColumns: - - name: wdf__state - dataType: STRING - - name: wdf__region - dataType: STRING - workspaceDataFilterReferences: - - filterId: - id: wdf__state - type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - - filterId: - id: wdf__region - type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL - id: order_lines - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/order_lines - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: order_id - type: attribute - - id: order_line_id - type: attribute - - id: order_status - type: attribute - facts: - data: - - id: price - type: fact - - id: quantity - type: fact - type: dataset - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - areRelationsValid: true - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - meta: - origin: - originId: demo - originType: NATIVE - relationships: - attributes: - data: - - id: product_id - type: attribute - - id: product_name - type: attribute - - id: products.category - type: attribute - type: dataset - included: - - attributes: - title: Product id - description: Product id - tags: - - Products - sourceColumn: product_id - sourceColumnDataType: INT - isNullable: false - id: product_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_id - type: attribute - - attributes: - title: Budget - description: Budget - tags: - - Campaign channels - sourceColumn: budget - sourceColumnDataType: NUMERIC - isNullable: true - id: budget - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/budget - type: fact - - attributes: - title: Date - Year - description: Year - tags: - - Date - granularity: YEAR - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year - type: attribute - - attributes: - title: Product name - description: Product name - tags: - - Products - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - type: attribute - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - granularity: MONTH - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - type: attribute - - attributes: - title: Date - Quarter/Year - description: Quarter and Year (Q1/2020) - tags: - - Date - granularity: QUARTER - id: date.quarter - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.quarter - type: attribute - - attributes: - title: Category - description: Category - tags: - - Campaign channels - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channels.category - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - type: attribute - - attributes: - title: Date - Week/Year - description: Week and Year (W52/2020) - tags: - - Date - granularity: WEEK - id: date.week - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.week - type: attribute - - attributes: - title: Order id - description: Order id - tags: - - Order lines - sourceColumn: order_id - sourceColumnDataType: STRING - isNullable: true - id: order_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_id - type: attribute - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - sourceColumn: campaign_name - sourceColumnDataType: STRING - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name - type: attribute - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - description: Budget Agg - tags: - - Campaign channels per category - sourceColumn: budget - sourceColumnDataType: INT - operation: SUM - id: budget_agg - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg - type: aggregatedFact - - attributes: - title: Date - Date - description: Date - tags: - - Date - granularity: DAY - id: date.day - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.day - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - type: attribute - - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - sourceColumn: campaign_channel_id - sourceColumnDataType: STRING - isNullable: false - id: campaign_channel_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_channel_id - type: attribute - - attributes: - title: Customer id - description: Customer id - tags: - - Customers - sourceColumn: customer_id - sourceColumnDataType: INT - isNullable: false - id: customer_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_id - type: attribute - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns - sourceColumn: campaign_id - sourceColumnDataType: INT - isNullable: false - id: campaign_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_id - type: attribute - - attributes: - title: Type - description: Type - tags: - - Campaign channels - sourceColumn: type - sourceColumnDataType: STRING - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/type - type: attribute - - attributes: - title: Spend - description: Spend - tags: - - Campaign channels - sourceColumn: spend - sourceColumnDataType: NUMERIC - isNullable: true - id: spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/spend - type: fact - - attributes: - title: Order status - description: Order status - tags: - - Order lines - sourceColumn: order_status - sourceColumnDataType: STRING - isNullable: true - id: order_status - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_status - type: attribute - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - sourceColumn: customer_name - sourceColumnDataType: STRING - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/customer_name - type: attribute - - attributes: - title: Order line id - description: Order line id - tags: - - Order lines - sourceColumn: order_line_id - sourceColumnDataType: STRING - isNullable: false - id: order_line_id - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/order_line_id - type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '10543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: '# of Active Customers' - areRelationsValid: true - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_active_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Orders' - areRelationsValid: true - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_orders - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Top Customers' - areRelationsValid: true - content: - format: '#,##0' - maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT - {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2025-08-07 11:45 - id: amount_of_top_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '# of Valid Orders' - description: '' - areRelationsValid: true - content: - format: '#,##0.00' - maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: amount_of_valid_orders - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Campaign Spend - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - createdAt: 2025-08-07 11:45 - id: campaign_spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Order Amount - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2025-08-07 11:45 - id: order_amount - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/order_amount - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2025-08-07 11:45 - id: percent_revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10 Customers' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10% Customers' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_percent_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10% Products' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_percent_products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue from Top 10 Products' - areRelationsValid: true - 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}" - createdAt: 2025-08-07 11:45 - id: percent_revenue_from_top_10_products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue in Category' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: '% Revenue per Product' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - createdAt: 2025-08-07 11:45 - id: percent_revenue_per_product - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue - description: '' - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Clothing) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - createdAt: 2025-08-07 11:45 - id: revenue-clothing - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Electronic) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - createdAt: 2025-08-07 11:45 - id: revenue-electronic - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Home) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - createdAt: 2025-08-07 11:45 - id: revenue-home - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue (Outdoor) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - createdAt: 2025-08-07 11:45 - id: revenue-outdoor - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue per Customer - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2025-08-07 11:45 - id: revenue_per_customer - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue per Dollar Spent - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2025-08-07 11:45 - id: revenue_per_dollar_spent - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue / Top 10 - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2025-08-07 11:45 - id: revenue_top_10 - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Revenue / Top 10% - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2025-08-07 11:45 - id: revenue_top_10_percent - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Total Revenue - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2025-08-07 11:45 - id: total_revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue - meta: - origin: - originId: demo - originType: NATIVE - type: metric - - attributes: - title: Total Revenue (No Filters) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2025-08-07 11:45 - id: total_revenue-no_filters - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters - meta: - origin: - originId: demo - originType: NATIVE - type: metric - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects?include=ALL&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '33181' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign Spend - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: campaign_spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/campaign_spend - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: campaign_spend - type: metric - labels: - data: - - id: campaign_channels.category - type: label - - id: campaign_name - type: label - - id: type - type: label - type: visualizationObject - - attributes: - title: Customers Trend - areRelationsValid: true - 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: -12 - granularity: GDC.time.month - to: -1 - 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 - createdAt: 2025-08-07 11:45 - id: customers_trend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: amount_of_active_customers - type: metric - - id: revenue_per_customer - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: visualizationObject - - attributes: - title: '% Revenue per Product by Customer and Category' - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: percent_revenue_per_product_by_customer_and_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percent_revenue_per_product_by_customer_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_per_product - type: metric - - id: revenue - type: metric - labels: - data: - - id: customer_name - type: label - - id: products.category - type: label - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Percentage of Customers by Region - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: percentage_of_customers_by_region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/percentage_of_customers_by_region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: amount_of_active_customers - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: date.month - type: label - - id: region - type: label - type: visualizationObject - - attributes: - title: Product Breakdown - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: product_breakdown - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_breakdown - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue - type: metric - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Product Categories Pie Chart - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: product_categories_pie_chart - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_categories_pie_chart - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue - type: metric - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Product Revenue Comparison (over previous period) - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: product_revenue_comparison-over_previous_period - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_revenue_comparison-over_previous_period - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - attributes: - data: - - id: date.year - type: attribute - metrics: - data: - - id: revenue - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Product Saleability - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: product_saleability - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/product_saleability - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: amount_of_orders - type: metric - - id: revenue - type: metric - labels: - data: - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Revenue and Quantity by Product and Category - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_and_quantity_by_product_and_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_in_category - type: metric - - id: revenue - type: metric - facts: - data: - - id: quantity - type: fact - - id: price - type: fact - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - - id: customer_name - type: label - type: visualizationObject - - attributes: - title: Revenue by Category Trend - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_by_category_trend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_category_trend - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: date.month - type: label - - id: products.category - type: label - type: visualizationObject - - attributes: - title: Revenue by Product - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_by_product - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_by_product - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue - type: metric - labels: - data: - - id: product_name - type: label - type: visualizationObject - - attributes: - title: Revenue per $ vs Spend by Campaign - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_per_usd_vs_spend_by_campaign - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_per_usd_vs_spend_by_campaign - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: campaign_spend - type: metric - - id: revenue_per_dollar_spent - type: metric - labels: - data: - - id: campaign_name - type: label - type: visualizationObject - - attributes: - title: Revenue Trend - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_trend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_trend - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue - type: metric - - id: amount_of_orders - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: visualizationObject - - attributes: - title: Top 10 Customers - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: top_10_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_customers - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue_top_10 - type: metric - labels: - data: - - id: customer_name - type: label - - id: state - type: label - type: visualizationObject - - attributes: - title: Top 10 Products - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: top_10_products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/top_10_products - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: revenue_top_10 - type: metric - labels: - data: - - id: product_name - type: label - - id: products.category - type: label - type: visualizationObject - included: - - attributes: - title: '# of Orders' - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_orders - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_orders - type: metric - - attributes: - title: Revenue - description: '' - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - type: metric - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Date - Year - description: Year - tags: - - Date - granularity: YEAR - id: date.year - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.year - type: attribute - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - primary: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name - type: label - - attributes: - title: '% Revenue in Category' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - type: metric - - attributes: - title: Revenue per Customer - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2025-08-07 11:45 - id: revenue_per_customer - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - type: metric - - attributes: - title: Revenue / Top 10 - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2025-08-07 11:45 - id: revenue_top_10 - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - type: metric - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month - type: label - - attributes: - title: '% Revenue per Product' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - createdAt: 2025-08-07 11:45 - id: percent_revenue_per_product - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - type: metric - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Date - description: '' - tags: - - Date - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - type: dataset - - attributes: - title: Category - description: Category - tags: - - Campaign channels - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_channels.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_channels.category - type: label - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: Type - description: Type - tags: - - Campaign channels - primary: true - sourceColumn: type - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: type - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/type - type: label - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: State - description: State - tags: - - Customers - primary: true - sourceColumn: state - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state - type: label - - attributes: - title: '# of Active Customers' - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_active_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers - type: metric - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Campaign Spend - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - createdAt: 2025-08-07 11:45 - id: campaign_spend - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/campaign_spend - type: metric - - attributes: - title: Revenue per Dollar Spent - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2025-08-07 11:45 - id: revenue_per_dollar_spent - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - type: metric - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects?include=ALL&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects?include=ALL&page=1&size=500 diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml deleted file mode 100644 index e72850a35..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml +++ /dev/null @@ -1,1088 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - state - - region - localIdentifier: dim_0 - - itemIdentifiers: - - product_category - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 2158007b-e092-4bd6-842a-7e863b1bc821 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - region - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 4625 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '11340' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - null - - null - - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - null - - null - - - 220.46 - - 360.16 - - null - - null - - 161.73 - - 161.73 - - null - - null - - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - null - - null - - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - null - - null - - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - null - - null - - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 48 - - 8 - offset: - - 0 - - 0 - total: - - 48 - - 8 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml deleted file mode 100644 index be2e70fdf..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml +++ /dev/null @@ -1,1088 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - state - - region - localIdentifier: dim_0 - - itemIdentifiers: - - product_category - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 5f504466-cfc0-44f8-8914-b30740c9d2bd - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - region - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 4625 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '11340' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - null - - null - - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - null - - null - - - 220.46 - - 360.16 - - null - - null - - 161.73 - - 161.73 - - null - - null - - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - null - - null - - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - null - - null - - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - null - - null - - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 48 - - 8 - offset: - - 0 - - 0 - total: - - 48 - - 8 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml deleted file mode 100644 index 62d069086..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml +++ /dev/null @@ -1,9310 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - region - - state - - product_category - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1179' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 6c4793eb-e3fc-4367-a206-fe61c7c01766 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - links: - executionResult: b409d6ea18df8b885da52a1a2d9d424ac2576770:39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b409d6ea18df8b885da52a1a2d9d424ac2576770%3A39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2099' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - links: - executionResult: b409d6ea18df8b885da52a1a2d9d424ac2576770:39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 2913 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b409d6ea18df8b885da52a1a2d9d424ac2576770%3A39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7?offset=0&limit=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '99019' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - 220.46 - - 360.16 - - 161.73 - - 161.73 - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 364 - offset: - - 0 - total: - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b409d6ea18df8b885da52a1a2d9d424ac2576770%3A39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2099' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - links: - executionResult: b409d6ea18df8b885da52a1a2d9d424ac2576770:39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 2913 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b409d6ea18df8b885da52a1a2d9d424ac2576770%3A39c2608ea5e132fcff8ccdaabdd474282e7d21d041cad45a16feb761b62359b7?offset=0&limit=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '99019' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - 220.46 - - 360.16 - - 161.73 - - 161.73 - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 364 - offset: - - 0 - total: - - 364 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml deleted file mode 100644 index 9d3dfed39..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml +++ /dev/null @@ -1,9710 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: [] - localIdentifier: dim_0 - - itemIdentifiers: - - region - - state - - product_category - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1220' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 639c538b-75b5-47ea-892b-a24919a46634 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: [] - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f7b311296f89a035148eb4b0bd58baf99173a92:5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2202' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: [] - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f7b311296f89a035148eb4b0bd58baf99173a92:5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: [] - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 2913 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27528' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 0 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C100&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27760' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - 220.46 - - 360.16 - - 161.73 - - 161.73 - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - headers: - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 100 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C200&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27352' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - 1478.95 - - 1514.89 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 200 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C300&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '17132' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 64 - offset: - - 0 - - 300 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2202' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: [] - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f7b311296f89a035148eb4b0bd58baf99173a92:5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: [] - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 2913 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27528' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 0 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C100&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27760' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - 220.46 - - 360.16 - - 161.73 - - 161.73 - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - headers: - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 100 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C200&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '27352' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - 1478.95 - - 1514.89 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 100 - offset: - - 0 - - 200 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f7b311296f89a035148eb4b0bd58baf99173a92%3A5fce346b0f34ae7c711b81a4f44d4c5896c33378696bc0f000842cb1bd074c88?offset=0%2C300&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '17132' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: [] - - headerGroups: - - headers: - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 1 - - 64 - offset: - - 0 - - 300 - total: - - 1 - - 364 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml deleted file mode 100644 index 718183694..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml +++ /dev/null @@ -1,3383 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - product_category - localIdentifier: dim_0 - - itemIdentifiers: - - region - - state - - measureGroup - localIdentifier: dim_1 - totals: - - function: SUM - localIdentifier: grand_total1 - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - - function: MAX - localIdentifier: grand_total2 - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - bc70326e-5991-4dbc-b3c4-b19872bb2ea0 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 408f39187cd3add70ae02b26571b34d42e15f6d2:96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/408f39187cd3add70ae02b26571b34d42e15f6d2%3A96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2560' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 408f39187cd3add70ae02b26571b34d42e15f6d2:96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - resultSize: 4794 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/408f39187cd3add70ae02b26571b34d42e15f6d2%3A96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '22943' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - 2065.18 - - 2541.12 - - 586.37 - - 742.46 - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - 236.34 - - 393.47 - - 1869.53 - - 2146.81 - - 871.42 - - 1014.93 - - 955.93 - - 1055.56 - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - 5004.64 - - 6162.98 - - 1677.18 - - 2310.61 - - 652.4 - - 712.22 - - 527.93 - - 738.82 - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - 408.96 - - 646.74 - - 1802.4 - - 2176.17 - - 772.05 - - 1048.43 - - 1096.89 - - 1259.77 - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - 3201.61 - - 3617.53 - - 571.06 - - 681.94 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - 597.1 - - 701.11 - - 739.23 - - 969.9 - - 462.58 - - 523.96 - - 1213.9 - - 1575.07 - - 1069.48 - - 1394.01 - - 978.06 - - 1225.73 - - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - 1512.2 - - 1961.18 - - 770.11 - - 770.11 - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - 184.82 - - 281.19 - - 1813.39 - - 2638.54 - - 887.3 - - 1048.14 - - 1051.5 - - 1729.45 - - null - - null - - 537.52 - - 725.32 - - 4631.73 - - 6433.78 - - 1746.76 - - 2306.18 - - 949.42 - - 1198.83 - - 316.18 - - 422.57 - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - 549.99 - - 790.98 - - 1450.21 - - 1686.28 - - 876.39 - - 876.39 - - 541.59 - - 541.59 - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - 2547.68 - - 2863.09 - - 750.01 - - 750.01 - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - 596.79 - - 596.79 - - 567.73 - - 893.17 - - 540.36 - - 540.36 - - 676.67 - - 1173.63 - - 1244.55 - - 1429.29 - - 925.18 - - 1010.03 - - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - 1922.63 - - 2653.67 - - 535.43 - - 535.43 - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - 218.89 - - 218.89 - - 1321.08 - - 1684.95 - - 594.45 - - 594.45 - - 418.92 - - 418.92 - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - 3316.02 - - 3995.11 - - 952.05 - - 1078.41 - - 759.31 - - 927.48 - - 454.73 - - 454.73 - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - 174.34 - - 174.34 - - 1567.11 - - 1704.0 - - 771.44 - - 858.2 - - 612.65 - - 612.65 - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - 2806.15 - - 3446.67 - - 810.47 - - 1176.32 - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - 190.5 - - 373.65 - - 137.81 - - 172.97 - - 326.03 - - 440.93 - - 801.92 - - 801.92 - - 835.05 - - 835.05 - - 528.25 - - 973.49 - - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - 3046.57 - - 3763.37 - - 666.19 - - 666.19 - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - 5646.42 - - 5646.42 - - 538.99 - - 538.99 - - 1624.52 - - 1624.52 - - null - - null - - 231.84 - - 231.84 - - 8734.63 - - 13727.01 - - 9179.44 - - 9706.62 - - 3837.42 - - 3837.42 - - 3384.84 - - 3384.84 - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - 2834.07 - - 2834.07 - - 4056.46 - - 4879.18 - - 6328.89 - - 6328.89 - - 1184.6 - - 1184.6 - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - 7141.49 - - 7397.6 - - 523.09 - - 523.09 - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - 5211.52 - - 6042.93 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: - - data: - - - 8804.49 - - null - - 5982.7 - - null - - 8467.68 - - null - - 4503.79 - - null - - 7745.42 - - null - - 8189.130000000001 - - null - - 8546.58 - - null - - 2558.1 - - null - - 176.71 - - null - - 13572.17 - - null - - 640.05 - - null - - 10650.42 - - null - - 2892.16 - - null - - 4050.87 - - null - - 382.19 - - null - - 2132.86 - - null - - 21687.02 - - null - - 13555.43 - - null - - 6198.55 - - null - - 4683.68 - - null - - 3239.7200000000003 - - null - - 16394.17 - - null - - 41989.67 - - null - - 9865.27 - - null - - 2879.09 - - null - - 6511.79 - - null - - 8417.93 - - null - - 3967.36 - - null - - 8876.18 - - null - - 8748.77 - - null - - 3435.73 - - null - - 5143.92 - - null - - 44253.950000000004 - - null - - 15696.93 - - null - - 2654.63 - - null - - 18.7 - - null - - 4983.360000000001 - - null - - 10279.68 - - null - - 57411.81 - - null - - 10012.02 - - null - - 5219.91 - - null - - 1840.6399999999999 - - null - - 1384.3899999999999 - - null - - 1444.77 - - null - - 1328.97 - - null - - 4465.11 - - null - - 8360.6 - - null - - 6219.379999999999 - - null - - - null - - 3205.41 - - null - - 3939.72 - - null - - 3542.07 - - null - - 2349.06 - - null - - 5617.86 - - null - - 3157.96 - - null - - 3763.37 - - null - - 770.11 - - null - - 102.03 - - null - - 7939.25 - - null - - 393.47 - - null - - 5646.42 - - null - - 1048.14 - - null - - 1729.45 - - null - - 360.16 - - null - - 1129.66 - - null - - 13727.01 - - null - - 9706.62 - - null - - 3837.42 - - null - - 3384.84 - - null - - 1355.06 - - null - - 7595.78 - - null - - 25807.35 - - null - - 5985.75 - - null - - 1671.49 - - null - - 2185.98 - - null - - 6919.63 - - null - - 2834.07 - - null - - 4879.18 - - null - - 6328.89 - - null - - 1259.77 - - null - - 1995.05 - - null - - 22670.23 - - null - - 7397.6 - - null - - 1176.32 - - null - - 18.7 - - null - - 2664.71 - - null - - 3676.86 - - null - - 30393.45 - - null - - 5663.31 - - null - - 3426.72 - - null - - 3384.09 - - null - - 701.11 - - null - - 969.9 - - null - - 540.36 - - null - - 2074.55 - - null - - 6042.93 - - null - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_1 - paging: - count: - - 4 - - 96 - offset: - - 0 - - 0 - total: - - 4 - - 96 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/408f39187cd3add70ae02b26571b34d42e15f6d2%3A96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2560' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 408f39187cd3add70ae02b26571b34d42e15f6d2:96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - region - - state - - measureGroup - resultSize: 4794 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/408f39187cd3add70ae02b26571b34d42e15f6d2%3A96cd6a3a7afe256f41ba54609d27da9bebedadbebdbed750e3f30db1ba4a3ef4?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '22943' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - 2065.18 - - 2541.12 - - 586.37 - - 742.46 - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - 236.34 - - 393.47 - - 1869.53 - - 2146.81 - - 871.42 - - 1014.93 - - 955.93 - - 1055.56 - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - 5004.64 - - 6162.98 - - 1677.18 - - 2310.61 - - 652.4 - - 712.22 - - 527.93 - - 738.82 - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - 408.96 - - 646.74 - - 1802.4 - - 2176.17 - - 772.05 - - 1048.43 - - 1096.89 - - 1259.77 - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - 3201.61 - - 3617.53 - - 571.06 - - 681.94 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - 597.1 - - 701.11 - - 739.23 - - 969.9 - - 462.58 - - 523.96 - - 1213.9 - - 1575.07 - - 1069.48 - - 1394.01 - - 978.06 - - 1225.73 - - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - 1512.2 - - 1961.18 - - 770.11 - - 770.11 - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - 184.82 - - 281.19 - - 1813.39 - - 2638.54 - - 887.3 - - 1048.14 - - 1051.5 - - 1729.45 - - null - - null - - 537.52 - - 725.32 - - 4631.73 - - 6433.78 - - 1746.76 - - 2306.18 - - 949.42 - - 1198.83 - - 316.18 - - 422.57 - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - 549.99 - - 790.98 - - 1450.21 - - 1686.28 - - 876.39 - - 876.39 - - 541.59 - - 541.59 - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - 2547.68 - - 2863.09 - - 750.01 - - 750.01 - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - 596.79 - - 596.79 - - 567.73 - - 893.17 - - 540.36 - - 540.36 - - 676.67 - - 1173.63 - - 1244.55 - - 1429.29 - - 925.18 - - 1010.03 - - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - 1922.63 - - 2653.67 - - 535.43 - - 535.43 - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - 218.89 - - 218.89 - - 1321.08 - - 1684.95 - - 594.45 - - 594.45 - - 418.92 - - 418.92 - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - 3316.02 - - 3995.11 - - 952.05 - - 1078.41 - - 759.31 - - 927.48 - - 454.73 - - 454.73 - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - 174.34 - - 174.34 - - 1567.11 - - 1704.0 - - 771.44 - - 858.2 - - 612.65 - - 612.65 - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - 2806.15 - - 3446.67 - - 810.47 - - 1176.32 - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - 190.5 - - 373.65 - - 137.81 - - 172.97 - - 326.03 - - 440.93 - - 801.92 - - 801.92 - - 835.05 - - 835.05 - - 528.25 - - 973.49 - - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - 3046.57 - - 3763.37 - - 666.19 - - 666.19 - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - 5646.42 - - 5646.42 - - 538.99 - - 538.99 - - 1624.52 - - 1624.52 - - null - - null - - 231.84 - - 231.84 - - 8734.63 - - 13727.01 - - 9179.44 - - 9706.62 - - 3837.42 - - 3837.42 - - 3384.84 - - 3384.84 - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - 2834.07 - - 2834.07 - - 4056.46 - - 4879.18 - - 6328.89 - - 6328.89 - - 1184.6 - - 1184.6 - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - 7141.49 - - 7397.6 - - 523.09 - - 523.09 - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - 5211.52 - - 6042.93 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: - - data: - - - 8804.49 - - null - - 5982.7 - - null - - 8467.68 - - null - - 4503.79 - - null - - 7745.42 - - null - - 8189.130000000001 - - null - - 8546.58 - - null - - 2558.1 - - null - - 176.71 - - null - - 13572.17 - - null - - 640.05 - - null - - 10650.42 - - null - - 2892.16 - - null - - 4050.87 - - null - - 382.19 - - null - - 2132.86 - - null - - 21687.02 - - null - - 13555.43 - - null - - 6198.55 - - null - - 4683.68 - - null - - 3239.7200000000003 - - null - - 16394.17 - - null - - 41989.67 - - null - - 9865.27 - - null - - 2879.09 - - null - - 6511.79 - - null - - 8417.93 - - null - - 3967.36 - - null - - 8876.18 - - null - - 8748.77 - - null - - 3435.73 - - null - - 5143.92 - - null - - 44253.950000000004 - - null - - 15696.93 - - null - - 2654.63 - - null - - 18.7 - - null - - 4983.360000000001 - - null - - 10279.68 - - null - - 57411.81 - - null - - 10012.02 - - null - - 5219.91 - - null - - 1840.6399999999999 - - null - - 1384.3899999999999 - - null - - 1444.77 - - null - - 1328.97 - - null - - 4465.11 - - null - - 8360.6 - - null - - 6219.379999999999 - - null - - - null - - 3205.41 - - null - - 3939.72 - - null - - 3542.07 - - null - - 2349.06 - - null - - 5617.86 - - null - - 3157.96 - - null - - 3763.37 - - null - - 770.11 - - null - - 102.03 - - null - - 7939.25 - - null - - 393.47 - - null - - 5646.42 - - null - - 1048.14 - - null - - 1729.45 - - null - - 360.16 - - null - - 1129.66 - - null - - 13727.01 - - null - - 9706.62 - - null - - 3837.42 - - null - - 3384.84 - - null - - 1355.06 - - null - - 7595.78 - - null - - 25807.35 - - null - - 5985.75 - - null - - 1671.49 - - null - - 2185.98 - - null - - 6919.63 - - null - - 2834.07 - - null - - 4879.18 - - null - - 6328.89 - - null - - 1259.77 - - null - - 1995.05 - - null - - 22670.23 - - null - - 7397.6 - - null - - 1176.32 - - null - - 18.7 - - null - - 2664.71 - - null - - 3676.86 - - null - - 30393.45 - - null - - 5663.31 - - null - - 3426.72 - - null - - 3384.09 - - null - - 701.11 - - null - - 969.9 - - null - - 540.36 - - null - - 2074.55 - - null - - 6042.93 - - null - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_1 - paging: - count: - - 4 - - 96 - offset: - - 0 - - 0 - total: - - 4 - - 96 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml deleted file mode 100644 index 3370fdb53..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml +++ /dev/null @@ -1,5487 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - region - - product_category - localIdentifier: dim_0 - - itemIdentifiers: - - state - - measureGroup - localIdentifier: dim_1 - totals: - - function: SUM - localIdentifier: grand_total1 - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - - function: MAX - localIdentifier: grand_total2 - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 3e5875d2-5c5f-47e0-a40d-ca6fca7c67ec - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 7415580d76d01d735bb8c0e3d859faf60b859b7c:2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7415580d76d01d735bb8c0e3d859faf60b859b7c%3A2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 7415580d76d01d735bb8c0e3d859faf60b859b7c:2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - state - - measureGroup - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - resultSize: 15444 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7415580d76d01d735bb8c0e3d859faf60b859b7c%3A2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24567' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - null - - null - - null - - null - - null - - null - - null - - null - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - null - - null - - 2065.18 - - 2541.12 - - null - - null - - 586.37 - - 742.46 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 236.34 - - 393.47 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1869.53 - - 2146.81 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - null - - null - - null - - null - - null - - null - - null - - null - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - null - - null - - 1512.2 - - 1961.18 - - null - - null - - 770.11 - - 770.11 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 184.82 - - 281.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1813.39 - - 2638.54 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - null - - null - - null - - null - - null - - null - - null - - null - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - null - - null - - 1922.63 - - 2653.67 - - null - - null - - 535.43 - - 535.43 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 218.89 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1321.08 - - 1684.95 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - null - - null - - 3046.57 - - 3763.37 - - null - - null - - 666.19 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 5646.42 - - 5646.42 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 871.42 - - 1014.93 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 955.93 - - 1055.56 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - null - - null - - 5004.64 - - 6162.98 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1677.18 - - 2310.61 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 887.3 - - 1048.14 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1051.5 - - 1729.45 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 537.52 - - 725.32 - - null - - null - - 4631.73 - - 6433.78 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1746.76 - - 2306.18 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 594.45 - - 594.45 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 418.92 - - 418.92 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - null - - null - - 3316.02 - - 3995.11 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 952.05 - - 1078.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 538.99 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1624.52 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 231.84 - - 231.84 - - null - - null - - 8734.63 - - 13727.01 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 9179.44 - - 9706.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 652.4 - - 712.22 - - null - - null - - null - - null - - 527.93 - - 738.82 - - null - - null - - null - - null - - null - - null - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - null - - null - - null - - null - - null - - null - - 408.96 - - 646.74 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1802.4 - - 2176.17 - - null - - null - - null - - null - - 772.05 - - 1048.43 - - null - - null - - null - - null - - null - - null - - 1096.89 - - 1259.77 - - null - - null - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - null - - null - - 3201.61 - - 3617.53 - - null - - null - - 571.06 - - 681.94 - - null - - null - - - 949.42 - - 1198.83 - - null - - null - - null - - null - - 316.18 - - 422.57 - - null - - null - - null - - null - - null - - null - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - null - - null - - null - - null - - null - - null - - 549.99 - - 790.98 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1450.21 - - 1686.28 - - null - - null - - null - - null - - 876.39 - - 876.39 - - null - - null - - null - - null - - null - - null - - 541.59 - - 541.59 - - null - - null - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - null - - null - - 2547.68 - - 2863.09 - - null - - null - - 750.01 - - 750.01 - - null - - null - - - 759.31 - - 927.48 - - null - - null - - null - - null - - 454.73 - - 454.73 - - null - - null - - null - - null - - null - - null - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - null - - null - - null - - null - - null - - null - - 174.34 - - 174.34 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1567.11 - - 1704.0 - - null - - null - - null - - null - - 771.44 - - 858.2 - - null - - null - - null - - null - - null - - null - - 612.65 - - 612.65 - - null - - null - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - null - - null - - 2806.15 - - 3446.67 - - null - - null - - 810.47 - - 1176.32 - - null - - null - - - 3837.42 - - 3837.42 - - null - - null - - null - - null - - 3384.84 - - 3384.84 - - null - - null - - null - - null - - null - - null - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - null - - null - - null - - null - - null - - null - - 2834.07 - - 2834.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 4056.46 - - 4879.18 - - null - - null - - null - - null - - 6328.89 - - 6328.89 - - null - - null - - null - - null - - null - - null - - 1184.6 - - 1184.6 - - null - - null - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - null - - null - - 7141.49 - - 7397.6 - - null - - null - - 523.09 - - 523.09 - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - null - - null - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 597.1 - - 701.11 - - null - - null - - 739.23 - - 969.9 - - null - - null - - null - - null - - 462.58 - - 523.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1213.9 - - 1575.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1069.48 - - 1394.01 - - null - - null - - 978.06 - - 1225.73 - - null - - null - - null - - null - - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - null - - null - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 596.79 - - 596.79 - - null - - null - - 567.73 - - 893.17 - - null - - null - - null - - null - - 540.36 - - 540.36 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 676.67 - - 1173.63 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1244.55 - - 1429.29 - - null - - null - - 925.18 - - 1010.03 - - null - - null - - null - - null - - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - null - - null - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 190.5 - - 373.65 - - null - - null - - 137.81 - - 172.97 - - null - - null - - null - - null - - 326.03 - - 440.93 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 801.92 - - 801.92 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 835.05 - - 835.05 - - null - - null - - 528.25 - - 973.49 - - null - - null - - null - - null - - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - null - - null - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 5211.52 - - 6042.93 - - null - - null - - 3787.89 - - 4246.86 - - null - - null - - null - - null - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: - - data: - - - 6198.55 - - null - - 4983.360000000001 - - null - - 10279.68 - - null - - 4683.68 - - null - - 57411.81 - - null - - 10012.02 - - null - - 2892.16 - - null - - 3239.7200000000003 - - null - - 16394.17 - - null - - 41989.67 - - null - - 9865.27 - - null - - 5219.91 - - null - - 1840.6399999999999 - - null - - 8804.49 - - null - - 5982.7 - - null - - 8467.68 - - null - - 4503.79 - - null - - 2879.09 - - null - - 6511.79 - - null - - 8417.93 - - null - - 4050.87 - - null - - 7745.42 - - null - - 8189.130000000001 - - null - - 3967.36 - - null - - 8546.58 - - null - - 1384.3899999999999 - - null - - 2558.1 - - null - - 1444.77 - - null - - 382.19 - - null - - 2132.86 - - null - - 1328.97 - - null - - 21687.02 - - null - - 8876.18 - - null - - 176.71 - - null - - 13572.17 - - null - - 8748.77 - - null - - 4465.11 - - null - - 13555.43 - - null - - 18.7 - - null - - 3435.73 - - null - - 640.05 - - null - - 5143.92 - - null - - 44253.950000000004 - - null - - 8360.6 - - null - - 15696.93 - - null - - 6219.379999999999 - - null - - 2654.63 - - null - - 10650.42 - - null - - - null - - 3837.42 - - null - - 2664.71 - - null - - 3676.86 - - null - - 3384.84 - - null - - 30393.45 - - null - - 5663.31 - - null - - 1048.14 - - null - - 1355.06 - - null - - 7595.78 - - null - - 25807.35 - - null - - 5985.75 - - null - - 3426.72 - - null - - 3384.09 - - null - - 3205.41 - - null - - 3939.72 - - null - - 3542.07 - - null - - 2349.06 - - null - - 1671.49 - - null - - 2185.98 - - null - - 6919.63 - - null - - 1729.45 - - null - - 5617.86 - - null - - 3157.96 - - null - - 2834.07 - - null - - 3763.37 - - null - - 701.11 - - null - - 770.11 - - null - - 969.9 - - null - - 360.16 - - null - - 1129.66 - - null - - 540.36 - - null - - 13727.01 - - null - - 4879.18 - - null - - 102.03 - - null - - 7939.25 - - null - - 6328.89 - - null - - 2074.55 - - null - - 9706.62 - - null - - 18.7 - - null - - 1259.77 - - null - - 393.47 - - null - - 1995.05 - - null - - 22670.23 - - null - - 6042.93 - - null - - 7397.6 - - null - - 4246.86 - - null - - 1176.32 - - null - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_1 - paging: - count: - - 17 - - 96 - offset: - - 0 - - 0 - total: - - 17 - - 96 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7415580d76d01d735bb8c0e3d859faf60b859b7c%3A2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 7415580d76d01d735bb8c0e3d859faf60b859b7c:2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - state - - measureGroup - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_1 - totalDimensionItems: - - state - - measureGroup - resultSize: 15444 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7415580d76d01d735bb8c0e3d859faf60b859b7c%3A2e81f08d834aa81050ec7c22cbdf27aae27129040f759b92d09895baedb74825?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24567' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - null - - null - - null - - null - - null - - null - - null - - null - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - null - - null - - 2065.18 - - 2541.12 - - null - - null - - 586.37 - - 742.46 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 236.34 - - 393.47 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1869.53 - - 2146.81 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - null - - null - - null - - null - - null - - null - - null - - null - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - null - - null - - 1512.2 - - 1961.18 - - null - - null - - 770.11 - - 770.11 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 184.82 - - 281.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1813.39 - - 2638.54 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - null - - null - - null - - null - - null - - null - - null - - null - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - null - - null - - 1922.63 - - 2653.67 - - null - - null - - 535.43 - - 535.43 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 218.89 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1321.08 - - 1684.95 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - null - - null - - 3046.57 - - 3763.37 - - null - - null - - 666.19 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 5646.42 - - 5646.42 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 871.42 - - 1014.93 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 955.93 - - 1055.56 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - null - - null - - 5004.64 - - 6162.98 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1677.18 - - 2310.61 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 887.3 - - 1048.14 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1051.5 - - 1729.45 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 537.52 - - 725.32 - - null - - null - - 4631.73 - - 6433.78 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1746.76 - - 2306.18 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 594.45 - - 594.45 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 418.92 - - 418.92 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - null - - null - - 3316.02 - - 3995.11 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 952.05 - - 1078.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 538.99 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1624.52 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 231.84 - - 231.84 - - null - - null - - 8734.63 - - 13727.01 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 9179.44 - - 9706.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 652.4 - - 712.22 - - null - - null - - null - - null - - 527.93 - - 738.82 - - null - - null - - null - - null - - null - - null - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - null - - null - - null - - null - - null - - null - - 408.96 - - 646.74 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1802.4 - - 2176.17 - - null - - null - - null - - null - - 772.05 - - 1048.43 - - null - - null - - null - - null - - null - - null - - 1096.89 - - 1259.77 - - null - - null - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - null - - null - - 3201.61 - - 3617.53 - - null - - null - - 571.06 - - 681.94 - - null - - null - - - 949.42 - - 1198.83 - - null - - null - - null - - null - - 316.18 - - 422.57 - - null - - null - - null - - null - - null - - null - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - null - - null - - null - - null - - null - - null - - 549.99 - - 790.98 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1450.21 - - 1686.28 - - null - - null - - null - - null - - 876.39 - - 876.39 - - null - - null - - null - - null - - null - - null - - 541.59 - - 541.59 - - null - - null - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - null - - null - - 2547.68 - - 2863.09 - - null - - null - - 750.01 - - 750.01 - - null - - null - - - 759.31 - - 927.48 - - null - - null - - null - - null - - 454.73 - - 454.73 - - null - - null - - null - - null - - null - - null - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - null - - null - - null - - null - - null - - null - - 174.34 - - 174.34 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1567.11 - - 1704.0 - - null - - null - - null - - null - - 771.44 - - 858.2 - - null - - null - - null - - null - - null - - null - - 612.65 - - 612.65 - - null - - null - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - null - - null - - 2806.15 - - 3446.67 - - null - - null - - 810.47 - - 1176.32 - - null - - null - - - 3837.42 - - 3837.42 - - null - - null - - null - - null - - 3384.84 - - 3384.84 - - null - - null - - null - - null - - null - - null - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - null - - null - - null - - null - - null - - null - - 2834.07 - - 2834.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 4056.46 - - 4879.18 - - null - - null - - null - - null - - 6328.89 - - 6328.89 - - null - - null - - null - - null - - null - - null - - 1184.6 - - 1184.6 - - null - - null - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - null - - null - - 7141.49 - - 7397.6 - - null - - null - - 523.09 - - 523.09 - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - null - - null - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 597.1 - - 701.11 - - null - - null - - 739.23 - - 969.9 - - null - - null - - null - - null - - 462.58 - - 523.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1213.9 - - 1575.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1069.48 - - 1394.01 - - null - - null - - 978.06 - - 1225.73 - - null - - null - - null - - null - - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - null - - null - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 596.79 - - 596.79 - - null - - null - - 567.73 - - 893.17 - - null - - null - - null - - null - - 540.36 - - 540.36 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 676.67 - - 1173.63 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1244.55 - - 1429.29 - - null - - null - - 925.18 - - 1010.03 - - null - - null - - null - - null - - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - null - - null - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 190.5 - - 373.65 - - null - - null - - 137.81 - - 172.97 - - null - - null - - null - - null - - 326.03 - - 440.93 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 801.92 - - 801.92 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 835.05 - - 835.05 - - null - - null - - 528.25 - - 973.49 - - null - - null - - null - - null - - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - null - - null - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 5211.52 - - 6042.93 - - null - - null - - 3787.89 - - 4246.86 - - null - - null - - null - - null - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: - - data: - - - 6198.55 - - null - - 4983.360000000001 - - null - - 10279.68 - - null - - 4683.68 - - null - - 57411.81 - - null - - 10012.02 - - null - - 2892.16 - - null - - 3239.7200000000003 - - null - - 16394.17 - - null - - 41989.67 - - null - - 9865.27 - - null - - 5219.91 - - null - - 1840.6399999999999 - - null - - 8804.49 - - null - - 5982.7 - - null - - 8467.68 - - null - - 4503.79 - - null - - 2879.09 - - null - - 6511.79 - - null - - 8417.93 - - null - - 4050.87 - - null - - 7745.42 - - null - - 8189.130000000001 - - null - - 3967.36 - - null - - 8546.58 - - null - - 1384.3899999999999 - - null - - 2558.1 - - null - - 1444.77 - - null - - 382.19 - - null - - 2132.86 - - null - - 1328.97 - - null - - 21687.02 - - null - - 8876.18 - - null - - 176.71 - - null - - 13572.17 - - null - - 8748.77 - - null - - 4465.11 - - null - - 13555.43 - - null - - 18.7 - - null - - 3435.73 - - null - - 640.05 - - null - - 5143.92 - - null - - 44253.950000000004 - - null - - 8360.6 - - null - - 15696.93 - - null - - 6219.379999999999 - - null - - 2654.63 - - null - - 10650.42 - - null - - - null - - 3837.42 - - null - - 2664.71 - - null - - 3676.86 - - null - - 3384.84 - - null - - 30393.45 - - null - - 5663.31 - - null - - 1048.14 - - null - - 1355.06 - - null - - 7595.78 - - null - - 25807.35 - - null - - 5985.75 - - null - - 3426.72 - - null - - 3384.09 - - null - - 3205.41 - - null - - 3939.72 - - null - - 3542.07 - - null - - 2349.06 - - null - - 1671.49 - - null - - 2185.98 - - null - - 6919.63 - - null - - 1729.45 - - null - - 5617.86 - - null - - 3157.96 - - null - - 2834.07 - - null - - 3763.37 - - null - - 701.11 - - null - - 770.11 - - null - - 969.9 - - null - - 360.16 - - null - - 1129.66 - - null - - 540.36 - - null - - 13727.01 - - null - - 4879.18 - - null - - 102.03 - - null - - 7939.25 - - null - - 6328.89 - - null - - 2074.55 - - null - - 9706.62 - - null - - 18.7 - - null - - 1259.77 - - null - - 393.47 - - null - - 1995.05 - - null - - 22670.23 - - null - - 6042.93 - - null - - 7397.6 - - null - - 4246.86 - - null - - 1176.32 - - null - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_1 - paging: - count: - - 17 - - 96 - offset: - - 0 - - 0 - total: - - 17 - - 96 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml deleted file mode 100644 index f9868ae29..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml +++ /dev/null @@ -1,3383 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - region - - state - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - product_category - localIdentifier: dim_1 - totals: - - function: SUM - localIdentifier: grand_total1 - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - - function: MAX - localIdentifier: grand_total2 - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 192cf8b9-015e-4631-922f-eafc8146fdaf - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 2953b8e44bc59aa00ecf9406d8c5e398921671f0:08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/2953b8e44bc59aa00ecf9406d8c5e398921671f0%3A08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2560' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 2953b8e44bc59aa00ecf9406d8c5e398921671f0:08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - resultSize: 4794 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/2953b8e44bc59aa00ecf9406d8c5e398921671f0%3A08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '23315' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 1936.08 - - 1644.01 - - 3205.41 - - - 2535.21 - - 2325.5 - - 1667.22 - - 3205.41 - - - 963.25 - - 1115.49 - - 286.41 - - 3617.55 - - - 1190.44 - - 1178.01 - - 286.41 - - 3939.72 - - - 1858.1 - - 1819.59 - - 1491.35 - - 3298.64 - - - 2263.12 - - 2474.87 - - 1491.35 - - 3542.07 - - - 802.06 - - 603.3 - - 749.37 - - 2349.06 - - - 882.27 - - 674.41 - - 864.05 - - 2349.06 - - - 989.47 - - 1581.46 - - 1817.19 - - 3357.3 - - - 1104.14 - - 1767.83 - - 2663.57 - - 5617.86 - - - 1915.46 - - 2329.01 - - 1264.88 - - 2679.78 - - - 2369.61 - - 2826.18 - - 1311.02 - - 3157.96 - - - 2065.18 - - 1512.2 - - 1922.63 - - 3046.57 - - - 2541.12 - - 1961.18 - - 2653.67 - - 3763.37 - - - 586.37 - - 770.11 - - 535.43 - - 666.19 - - - 742.46 - - 770.11 - - 535.43 - - 666.19 - - - 102.03 - - 60.78 - - 13.9 - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - - 3463.82 - - 3532.76 - - 2498.84 - - 4076.75 - - - 4467.47 - - 4133.16 - - 3377.52 - - 7939.25 - - - 236.34 - - 184.82 - - 218.89 - - null - - - 393.47 - - 281.19 - - 218.89 - - null - - - 1869.53 - - 1813.39 - - 1321.08 - - 5646.42 - - - 2146.81 - - 2638.54 - - 1684.95 - - 5646.42 - - - 871.42 - - 887.3 - - 594.45 - - 538.99 - - - 1014.93 - - 1048.14 - - 594.45 - - 538.99 - - - 955.93 - - 1051.5 - - 418.92 - - 1624.52 - - - 1055.56 - - 1729.45 - - 418.92 - - 1624.52 - - - 220.46 - - null - - 161.73 - - null - - - 360.16 - - null - - 161.73 - - null - - - 1007.04 - - 537.52 - - 356.46 - - 231.84 - - - 1129.66 - - 725.32 - - 356.46 - - 231.84 - - - 5004.64 - - 4631.73 - - 3316.02 - - 8734.63 - - - 6162.98 - - 6433.78 - - 3995.11 - - 13727.01 - - - 1677.18 - - 1746.76 - - 952.05 - - 9179.44 - - - 2310.61 - - 2306.18 - - 1078.41 - - 9706.62 - - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - - 527.93 - - 316.18 - - 454.73 - - 3384.84 - - - 738.82 - - 422.57 - - 454.73 - - 3384.84 - - - 541.01 - - 906.16 - - 437.49 - - 1355.06 - - - 717.46 - - 906.16 - - 556.68 - - 1355.06 - - - 2518.14 - - 3262.11 - - 3018.14 - - 7595.78 - - - 3019.08 - - 3945.61 - - 3554.04 - - 7595.78 - - - 8476.07 - - 8258.54 - - 5960.21 - - 19294.85 - - - 10448.66 - - 10548.47 - - 6688.79 - - 25807.35 - - - 1973.23 - - 1805.62 - - 1053.23 - - 5033.19 - - - 2601.99 - - 2152.51 - - 1294.96 - - 5985.75 - - - 1304.99 - - 1039.04 - - 311.97 - - 223.09 - - - 1671.49 - - 1153.3 - - 311.97 - - 446.18 - - - 1274.22 - - 1727.11 - - 1324.48 - - 2185.98 - - - 1368.62 - - 1943.0 - - 1749.62 - - 2185.98 - - - 1558.28 - - 952.3 - - 1563.19 - - 4344.16 - - - 1952.49 - - 1226.85 - - 2208.04 - - 6919.63 - - - 408.96 - - 549.99 - - 174.34 - - 2834.07 - - - 646.74 - - 790.98 - - 174.34 - - 2834.07 - - - 1802.4 - - 1450.21 - - 1567.11 - - 4056.46 - - - 2176.17 - - 1686.28 - - 1704.0 - - 4879.18 - - - 772.05 - - 876.39 - - 771.44 - - 6328.89 - - - 1048.43 - - 876.39 - - 858.2 - - 6328.89 - - - 1096.89 - - 541.59 - - 612.65 - - 1184.6 - - - 1259.77 - - 541.59 - - 612.65 - - 1184.6 - - - 1585.4 - - 1291.99 - - 616.68 - - 1649.85 - - - 1995.05 - - 1291.99 - - 616.68 - - 1886.52 - - - 9041.19 - - 8688.2 - - 7196.91 - - 19327.65 - - - 11279.19 - - 10307.9 - - 8293.87 - - 22670.23 - - - 3201.61 - - 2547.68 - - 2806.15 - - 7141.49 - - - 3617.53 - - 2863.09 - - 3446.67 - - 7397.6 - - - 571.06 - - 750.01 - - 810.47 - - 523.09 - - - 681.94 - - 750.01 - - 1176.32 - - 523.09 - - - 18.7 - - null - - null - - null - - - 18.7 - - null - - null - - null - - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - - 2294.87 - - 2170.62 - - 2137.33 - - 3676.86 - - - 2725.93 - - 2380.37 - - 2158.09 - - 3676.86 - - - 11367.24 - - 11524.88 - - 8522.94 - - 25996.75 - - - 13561.15 - - 13729.96 - - 9700.71 - - 30393.45 - - - 1478.95 - - 1839.72 - - 1030.04 - - 5663.31 - - - 1514.89 - - 2325.39 - - 1366.28 - - 5663.31 - - - 638.98 - - 758.13 - - 396.08 - - 3426.72 - - - 893.14 - - 758.13 - - 396.08 - - 3426.72 - - - 316.43 - - 299.91 - - 96.27 - - 1128.03 - - - 454.71 - - 383.62 - - 178.1 - - 3384.09 - - - 597.1 - - 596.79 - - 190.5 - - null - - - 701.11 - - 596.79 - - 373.65 - - null - - - 739.23 - - 567.73 - - 137.81 - - null - - - 969.9 - - 893.17 - - 172.97 - - null - - - 462.58 - - 540.36 - - 326.03 - - null - - - 523.96 - - 540.36 - - 440.93 - - null - - - 1213.9 - - 676.67 - - 801.92 - - 1772.62 - - - 1575.07 - - 1173.63 - - 801.92 - - 2074.55 - - - 1069.48 - - 1244.55 - - 835.05 - - 5211.52 - - - 1394.01 - - 1429.29 - - 835.05 - - 6042.93 - - - 978.06 - - 925.18 - - 528.25 - - 3787.89 - - - 1225.73 - - 1010.03 - - 973.49 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: - - data: - - - 8804.49 - - null - - - null - - 3205.41 - - - 5982.7 - - null - - - null - - 3939.72 - - - 8467.68 - - null - - - null - - 3542.07 - - - 4503.79 - - null - - - null - - 2349.06 - - - 7745.42 - - null - - - null - - 5617.86 - - - 8189.130000000001 - - null - - - null - - 3157.96 - - - 8546.58 - - null - - - null - - 3763.37 - - - 2558.1 - - null - - - null - - 770.11 - - - 176.71 - - null - - - null - - 102.03 - - - 13572.17 - - null - - - null - - 7939.25 - - - 640.05 - - null - - - null - - 393.47 - - - 10650.42 - - null - - - null - - 5646.42 - - - 2892.16 - - null - - - null - - 1048.14 - - - 4050.87 - - null - - - null - - 1729.45 - - - 382.19 - - null - - - null - - 360.16 - - - 2132.86 - - null - - - null - - 1129.66 - - - 21687.02 - - null - - - null - - 13727.01 - - - 13555.43 - - null - - - null - - 9706.62 - - - 6198.55 - - null - - - null - - 3837.42 - - - 4683.68 - - null - - - null - - 3384.84 - - - 3239.7200000000003 - - null - - - null - - 1355.06 - - - 16394.17 - - null - - - null - - 7595.78 - - - 41989.67 - - null - - - null - - 25807.35 - - - 9865.27 - - null - - - null - - 5985.75 - - - 2879.09 - - null - - - null - - 1671.49 - - - 6511.79 - - null - - - null - - 2185.98 - - - 8417.93 - - null - - - null - - 6919.63 - - - 3967.36 - - null - - - null - - 2834.07 - - - 8876.18 - - null - - - null - - 4879.18 - - - 8748.77 - - null - - - null - - 6328.89 - - - 3435.73 - - null - - - null - - 1259.77 - - - 5143.92 - - null - - - null - - 1995.05 - - - 44253.950000000004 - - null - - - null - - 22670.23 - - - 15696.93 - - null - - - null - - 7397.6 - - - 2654.63 - - null - - - null - - 1176.32 - - - 18.7 - - null - - - null - - 18.7 - - - 4983.360000000001 - - null - - - null - - 2664.71 - - - 10279.68 - - null - - - null - - 3676.86 - - - 57411.81 - - null - - - null - - 30393.45 - - - 10012.02 - - null - - - null - - 5663.31 - - - 5219.91 - - null - - - null - - 3426.72 - - - 1840.6399999999999 - - null - - - null - - 3384.09 - - - 1384.3899999999999 - - null - - - null - - 701.11 - - - 1444.77 - - null - - - null - - 969.9 - - - 1328.97 - - null - - - null - - 540.36 - - - 4465.11 - - null - - - null - - 2074.55 - - - 8360.6 - - null - - - null - - 6042.93 - - - 6219.379999999999 - - null - - - null - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_0 - paging: - count: - - 96 - - 4 - offset: - - 0 - - 0 - total: - - 96 - - 4 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/2953b8e44bc59aa00ecf9406d8c5e398921671f0%3A08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2560' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 2953b8e44bc59aa00ecf9406d8c5e398921671f0:08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - region - - state - - measureGroup - resultSize: 4794 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/2953b8e44bc59aa00ecf9406d8c5e398921671f0%3A08bcbcb48210c28ec3e34a0e3c3d849ab7192506eabaefd563bb1479cf1b0aa3?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '23315' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 1936.08 - - 1644.01 - - 3205.41 - - - 2535.21 - - 2325.5 - - 1667.22 - - 3205.41 - - - 963.25 - - 1115.49 - - 286.41 - - 3617.55 - - - 1190.44 - - 1178.01 - - 286.41 - - 3939.72 - - - 1858.1 - - 1819.59 - - 1491.35 - - 3298.64 - - - 2263.12 - - 2474.87 - - 1491.35 - - 3542.07 - - - 802.06 - - 603.3 - - 749.37 - - 2349.06 - - - 882.27 - - 674.41 - - 864.05 - - 2349.06 - - - 989.47 - - 1581.46 - - 1817.19 - - 3357.3 - - - 1104.14 - - 1767.83 - - 2663.57 - - 5617.86 - - - 1915.46 - - 2329.01 - - 1264.88 - - 2679.78 - - - 2369.61 - - 2826.18 - - 1311.02 - - 3157.96 - - - 2065.18 - - 1512.2 - - 1922.63 - - 3046.57 - - - 2541.12 - - 1961.18 - - 2653.67 - - 3763.37 - - - 586.37 - - 770.11 - - 535.43 - - 666.19 - - - 742.46 - - 770.11 - - 535.43 - - 666.19 - - - 102.03 - - 60.78 - - 13.9 - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - - 3463.82 - - 3532.76 - - 2498.84 - - 4076.75 - - - 4467.47 - - 4133.16 - - 3377.52 - - 7939.25 - - - 236.34 - - 184.82 - - 218.89 - - null - - - 393.47 - - 281.19 - - 218.89 - - null - - - 1869.53 - - 1813.39 - - 1321.08 - - 5646.42 - - - 2146.81 - - 2638.54 - - 1684.95 - - 5646.42 - - - 871.42 - - 887.3 - - 594.45 - - 538.99 - - - 1014.93 - - 1048.14 - - 594.45 - - 538.99 - - - 955.93 - - 1051.5 - - 418.92 - - 1624.52 - - - 1055.56 - - 1729.45 - - 418.92 - - 1624.52 - - - 220.46 - - null - - 161.73 - - null - - - 360.16 - - null - - 161.73 - - null - - - 1007.04 - - 537.52 - - 356.46 - - 231.84 - - - 1129.66 - - 725.32 - - 356.46 - - 231.84 - - - 5004.64 - - 4631.73 - - 3316.02 - - 8734.63 - - - 6162.98 - - 6433.78 - - 3995.11 - - 13727.01 - - - 1677.18 - - 1746.76 - - 952.05 - - 9179.44 - - - 2310.61 - - 2306.18 - - 1078.41 - - 9706.62 - - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - - 527.93 - - 316.18 - - 454.73 - - 3384.84 - - - 738.82 - - 422.57 - - 454.73 - - 3384.84 - - - 541.01 - - 906.16 - - 437.49 - - 1355.06 - - - 717.46 - - 906.16 - - 556.68 - - 1355.06 - - - 2518.14 - - 3262.11 - - 3018.14 - - 7595.78 - - - 3019.08 - - 3945.61 - - 3554.04 - - 7595.78 - - - 8476.07 - - 8258.54 - - 5960.21 - - 19294.85 - - - 10448.66 - - 10548.47 - - 6688.79 - - 25807.35 - - - 1973.23 - - 1805.62 - - 1053.23 - - 5033.19 - - - 2601.99 - - 2152.51 - - 1294.96 - - 5985.75 - - - 1304.99 - - 1039.04 - - 311.97 - - 223.09 - - - 1671.49 - - 1153.3 - - 311.97 - - 446.18 - - - 1274.22 - - 1727.11 - - 1324.48 - - 2185.98 - - - 1368.62 - - 1943.0 - - 1749.62 - - 2185.98 - - - 1558.28 - - 952.3 - - 1563.19 - - 4344.16 - - - 1952.49 - - 1226.85 - - 2208.04 - - 6919.63 - - - 408.96 - - 549.99 - - 174.34 - - 2834.07 - - - 646.74 - - 790.98 - - 174.34 - - 2834.07 - - - 1802.4 - - 1450.21 - - 1567.11 - - 4056.46 - - - 2176.17 - - 1686.28 - - 1704.0 - - 4879.18 - - - 772.05 - - 876.39 - - 771.44 - - 6328.89 - - - 1048.43 - - 876.39 - - 858.2 - - 6328.89 - - - 1096.89 - - 541.59 - - 612.65 - - 1184.6 - - - 1259.77 - - 541.59 - - 612.65 - - 1184.6 - - - 1585.4 - - 1291.99 - - 616.68 - - 1649.85 - - - 1995.05 - - 1291.99 - - 616.68 - - 1886.52 - - - 9041.19 - - 8688.2 - - 7196.91 - - 19327.65 - - - 11279.19 - - 10307.9 - - 8293.87 - - 22670.23 - - - 3201.61 - - 2547.68 - - 2806.15 - - 7141.49 - - - 3617.53 - - 2863.09 - - 3446.67 - - 7397.6 - - - 571.06 - - 750.01 - - 810.47 - - 523.09 - - - 681.94 - - 750.01 - - 1176.32 - - 523.09 - - - 18.7 - - null - - null - - null - - - 18.7 - - null - - null - - null - - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - - 2294.87 - - 2170.62 - - 2137.33 - - 3676.86 - - - 2725.93 - - 2380.37 - - 2158.09 - - 3676.86 - - - 11367.24 - - 11524.88 - - 8522.94 - - 25996.75 - - - 13561.15 - - 13729.96 - - 9700.71 - - 30393.45 - - - 1478.95 - - 1839.72 - - 1030.04 - - 5663.31 - - - 1514.89 - - 2325.39 - - 1366.28 - - 5663.31 - - - 638.98 - - 758.13 - - 396.08 - - 3426.72 - - - 893.14 - - 758.13 - - 396.08 - - 3426.72 - - - 316.43 - - 299.91 - - 96.27 - - 1128.03 - - - 454.71 - - 383.62 - - 178.1 - - 3384.09 - - - 597.1 - - 596.79 - - 190.5 - - null - - - 701.11 - - 596.79 - - 373.65 - - null - - - 739.23 - - 567.73 - - 137.81 - - null - - - 969.9 - - 893.17 - - 172.97 - - null - - - 462.58 - - 540.36 - - 326.03 - - null - - - 523.96 - - 540.36 - - 440.93 - - null - - - 1213.9 - - 676.67 - - 801.92 - - 1772.62 - - - 1575.07 - - 1173.63 - - 801.92 - - 2074.55 - - - 1069.48 - - 1244.55 - - 835.05 - - 5211.52 - - - 1394.01 - - 1429.29 - - 835.05 - - 6042.93 - - - 978.06 - - 925.18 - - 528.25 - - 3787.89 - - - 1225.73 - - 1010.03 - - 973.49 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: - - data: - - - 8804.49 - - null - - - null - - 3205.41 - - - 5982.7 - - null - - - null - - 3939.72 - - - 8467.68 - - null - - - null - - 3542.07 - - - 4503.79 - - null - - - null - - 2349.06 - - - 7745.42 - - null - - - null - - 5617.86 - - - 8189.130000000001 - - null - - - null - - 3157.96 - - - 8546.58 - - null - - - null - - 3763.37 - - - 2558.1 - - null - - - null - - 770.11 - - - 176.71 - - null - - - null - - 102.03 - - - 13572.17 - - null - - - null - - 7939.25 - - - 640.05 - - null - - - null - - 393.47 - - - 10650.42 - - null - - - null - - 5646.42 - - - 2892.16 - - null - - - null - - 1048.14 - - - 4050.87 - - null - - - null - - 1729.45 - - - 382.19 - - null - - - null - - 360.16 - - - 2132.86 - - null - - - null - - 1129.66 - - - 21687.02 - - null - - - null - - 13727.01 - - - 13555.43 - - null - - - null - - 9706.62 - - - 6198.55 - - null - - - null - - 3837.42 - - - 4683.68 - - null - - - null - - 3384.84 - - - 3239.7200000000003 - - null - - - null - - 1355.06 - - - 16394.17 - - null - - - null - - 7595.78 - - - 41989.67 - - null - - - null - - 25807.35 - - - 9865.27 - - null - - - null - - 5985.75 - - - 2879.09 - - null - - - null - - 1671.49 - - - 6511.79 - - null - - - null - - 2185.98 - - - 8417.93 - - null - - - null - - 6919.63 - - - 3967.36 - - null - - - null - - 2834.07 - - - 8876.18 - - null - - - null - - 4879.18 - - - 8748.77 - - null - - - null - - 6328.89 - - - 3435.73 - - null - - - null - - 1259.77 - - - 5143.92 - - null - - - null - - 1995.05 - - - 44253.950000000004 - - null - - - null - - 22670.23 - - - 15696.93 - - null - - - null - - 7397.6 - - - 2654.63 - - null - - - null - - 1176.32 - - - 18.7 - - null - - - null - - 18.7 - - - 4983.360000000001 - - null - - - null - - 2664.71 - - - 10279.68 - - null - - - null - - 3676.86 - - - 57411.81 - - null - - - null - - 30393.45 - - - 10012.02 - - null - - - null - - 5663.31 - - - 5219.91 - - null - - - null - - 3426.72 - - - 1840.6399999999999 - - null - - - null - - 3384.09 - - - 1384.3899999999999 - - null - - - null - - 701.11 - - - 1444.77 - - null - - - null - - 969.9 - - - 1328.97 - - null - - - null - - 540.36 - - - 4465.11 - - null - - - null - - 2074.55 - - - 8360.6 - - null - - - null - - 6042.93 - - - 6219.379999999999 - - null - - - null - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_0 - paging: - count: - - 96 - - 4 - offset: - - 0 - - 0 - total: - - 96 - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml deleted file mode 100644 index 437305b52..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml +++ /dev/null @@ -1,5487 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - state - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - region - - product_category - localIdentifier: dim_1 - totals: - - function: SUM - localIdentifier: grand_total1 - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - - function: MAX - localIdentifier: grand_total2 - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0eb0666b-ed63-4bd3-8f3d-9f4963e772f3 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: a21604101728ffa3fb0d66db5b6e6330c7460949:cc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a21604101728ffa3fb0d66db5b6e6330c7460949%3Acc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: a21604101728ffa3fb0d66db5b6e6330c7460949:cc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - measureGroup - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - product_category - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - resultSize: 15444 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a21604101728ffa3fb0d66db5b6e6330c7460949%3Acc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24913' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - null - - null - - null - - null - - null - - null - - null - - null - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2294.87 - - 2170.62 - - 2137.33 - - 3676.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2725.93 - - 2380.37 - - 2158.09 - - 3676.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - 527.93 - - 316.18 - - 454.73 - - 3384.84 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 738.82 - - 422.57 - - 454.73 - - 3384.84 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 11367.24 - - 11524.88 - - 8522.94 - - 25996.75 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 13561.15 - - 13729.96 - - 9700.71 - - 30393.45 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1478.95 - - 1839.72 - - 1030.04 - - 5663.31 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1514.89 - - 2325.39 - - 1366.28 - - 5663.31 - - - null - - null - - null - - null - - 871.42 - - 887.3 - - 594.45 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1014.93 - - 1048.14 - - 594.45 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 541.01 - - 906.16 - - 437.49 - - 1355.06 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 717.46 - - 906.16 - - 556.68 - - 1355.06 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2518.14 - - 3262.11 - - 3018.14 - - 7595.78 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 3019.08 - - 3945.61 - - 3554.04 - - 7595.78 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 8476.07 - - 8258.54 - - 5960.21 - - 19294.85 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 10448.66 - - 10548.47 - - 6688.79 - - 25807.35 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1973.23 - - 1805.62 - - 1053.23 - - 5033.19 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2601.99 - - 2152.51 - - 1294.96 - - 5985.75 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 638.98 - - 758.13 - - 396.08 - - 3426.72 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 893.14 - - 758.13 - - 396.08 - - 3426.72 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 316.43 - - 299.91 - - 96.27 - - 1128.03 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 454.71 - - 383.62 - - 178.1 - - 3384.09 - - - 2018.99 - - 1936.08 - - 1644.01 - - 3205.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2535.21 - - 2325.5 - - 1667.22 - - 3205.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 963.25 - - 1115.49 - - 286.41 - - 3617.55 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1190.44 - - 1178.01 - - 286.41 - - 3939.72 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1858.1 - - 1819.59 - - 1491.35 - - 3298.64 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2263.12 - - 2474.87 - - 1491.35 - - 3542.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 802.06 - - 603.3 - - 749.37 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 882.27 - - 674.41 - - 864.05 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1304.99 - - 1039.04 - - 311.97 - - 223.09 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1671.49 - - 1153.3 - - 311.97 - - 446.18 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1274.22 - - 1727.11 - - 1324.48 - - 2185.98 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1368.62 - - 1943.0 - - 1749.62 - - 2185.98 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1558.28 - - 952.3 - - 1563.19 - - 4344.16 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1952.49 - - 1226.85 - - 2208.04 - - 6919.63 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 955.93 - - 1051.5 - - 418.92 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1055.56 - - 1729.45 - - 418.92 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 989.47 - - 1581.46 - - 1817.19 - - 3357.3 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1104.14 - - 1767.83 - - 2663.57 - - 5617.86 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1915.46 - - 2329.01 - - 1264.88 - - 2679.78 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2369.61 - - 2826.18 - - 1311.02 - - 3157.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 408.96 - - 549.99 - - 174.34 - - 2834.07 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 646.74 - - 790.98 - - 174.34 - - 2834.07 - - null - - null - - null - - null - - null - - - 2065.18 - - 1512.2 - - 1922.63 - - 3046.57 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2541.12 - - 1961.18 - - 2653.67 - - 3763.37 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 597.1 - - 596.79 - - 190.5 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 701.11 - - 596.79 - - 373.65 - - null - - - 586.37 - - 770.11 - - 535.43 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 742.46 - - 770.11 - - 535.43 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 739.23 - - 567.73 - - 137.81 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 969.9 - - 893.17 - - 172.97 - - null - - - null - - null - - null - - null - - 220.46 - - null - - 161.73 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 360.16 - - null - - 161.73 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1007.04 - - 537.52 - - 356.46 - - 231.84 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1129.66 - - 725.32 - - 356.46 - - 231.84 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 462.58 - - 540.36 - - 326.03 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 523.96 - - 540.36 - - 440.93 - - null - - - null - - null - - null - - null - - 5004.64 - - 4631.73 - - 3316.02 - - 8734.63 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 6162.98 - - 6433.78 - - 3995.11 - - 13727.01 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1802.4 - - 1450.21 - - 1567.11 - - 4056.46 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2176.17 - - 1686.28 - - 1704.0 - - 4879.18 - - null - - null - - null - - null - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 3463.82 - - 3532.76 - - 2498.84 - - 4076.75 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 4467.47 - - 4133.16 - - 3377.52 - - 7939.25 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 772.05 - - 876.39 - - 771.44 - - 6328.89 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1048.43 - - 876.39 - - 858.2 - - 6328.89 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1213.9 - - 676.67 - - 801.92 - - 1772.62 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1575.07 - - 1173.63 - - 801.92 - - 2074.55 - - - null - - null - - null - - null - - 1677.18 - - 1746.76 - - 952.05 - - 9179.44 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 2310.61 - - 2306.18 - - 1078.41 - - 9706.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1096.89 - - 541.59 - - 612.65 - - 1184.6 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1259.77 - - 541.59 - - 612.65 - - 1184.6 - - null - - null - - null - - null - - null - - - 236.34 - - 184.82 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 393.47 - - 281.19 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1585.4 - - 1291.99 - - 616.68 - - 1649.85 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1995.05 - - 1291.99 - - 616.68 - - 1886.52 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 9041.19 - - 8688.2 - - 7196.91 - - 19327.65 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 11279.19 - - 10307.9 - - 8293.87 - - 22670.23 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1069.48 - - 1244.55 - - 835.05 - - 5211.52 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1394.01 - - 1429.29 - - 835.05 - - 6042.93 - - - null - - null - - null - - null - - null - - null - - null - - null - - 3201.61 - - 2547.68 - - 2806.15 - - 7141.49 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 3617.53 - - 2863.09 - - 3446.67 - - 7397.6 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 978.06 - - 925.18 - - 528.25 - - 3787.89 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1225.73 - - 1010.03 - - 973.49 - - 4246.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - 571.06 - - 750.01 - - 810.47 - - 523.09 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 681.94 - - 750.01 - - 1176.32 - - 523.09 - - null - - null - - null - - null - - null - - - 1869.53 - - 1813.39 - - 1321.08 - - 5646.42 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2146.81 - - 2638.54 - - 1684.95 - - 5646.42 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: - - data: - - - 6198.55 - - null - - - null - - 3837.42 - - - 4983.360000000001 - - null - - - null - - 2664.71 - - - 10279.68 - - null - - - null - - 3676.86 - - - 4683.68 - - null - - - null - - 3384.84 - - - 57411.81 - - null - - - null - - 30393.45 - - - 10012.02 - - null - - - null - - 5663.31 - - - 2892.16 - - null - - - null - - 1048.14 - - - 3239.7200000000003 - - null - - - null - - 1355.06 - - - 16394.17 - - null - - - null - - 7595.78 - - - 41989.67 - - null - - - null - - 25807.35 - - - 9865.27 - - null - - - null - - 5985.75 - - - 5219.91 - - null - - - null - - 3426.72 - - - 1840.6399999999999 - - null - - - null - - 3384.09 - - - 8804.49 - - null - - - null - - 3205.41 - - - 5982.7 - - null - - - null - - 3939.72 - - - 8467.68 - - null - - - null - - 3542.07 - - - 4503.79 - - null - - - null - - 2349.06 - - - 2879.09 - - null - - - null - - 1671.49 - - - 6511.79 - - null - - - null - - 2185.98 - - - 8417.93 - - null - - - null - - 6919.63 - - - 4050.87 - - null - - - null - - 1729.45 - - - 7745.42 - - null - - - null - - 5617.86 - - - 8189.130000000001 - - null - - - null - - 3157.96 - - - 3967.36 - - null - - - null - - 2834.07 - - - 8546.58 - - null - - - null - - 3763.37 - - - 1384.3899999999999 - - null - - - null - - 701.11 - - - 2558.1 - - null - - - null - - 770.11 - - - 1444.77 - - null - - - null - - 969.9 - - - 382.19 - - null - - - null - - 360.16 - - - 2132.86 - - null - - - null - - 1129.66 - - - 1328.97 - - null - - - null - - 540.36 - - - 21687.02 - - null - - - null - - 13727.01 - - - 8876.18 - - null - - - null - - 4879.18 - - - 176.71 - - null - - - null - - 102.03 - - - 13572.17 - - null - - - null - - 7939.25 - - - 8748.77 - - null - - - null - - 6328.89 - - - 4465.11 - - null - - - null - - 2074.55 - - - 13555.43 - - null - - - null - - 9706.62 - - - 18.7 - - null - - - null - - 18.7 - - - 3435.73 - - null - - - null - - 1259.77 - - - 640.05 - - null - - - null - - 393.47 - - - 5143.92 - - null - - - null - - 1995.05 - - - 44253.950000000004 - - null - - - null - - 22670.23 - - - 8360.6 - - null - - - null - - 6042.93 - - - 15696.93 - - null - - - null - - 7397.6 - - - 6219.379999999999 - - null - - - null - - 4246.86 - - - 2654.63 - - null - - - null - - 1176.32 - - - 10650.42 - - null - - - null - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_0 - paging: - count: - - 96 - - 17 - offset: - - 0 - - 0 - total: - - 96 - - 17 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a21604101728ffa3fb0d66db5b6e6330c7460949%3Acc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2543' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: a21604101728ffa3fb0d66db5b6e6330c7460949:cc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - measureGroup - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - product_category - sorting: [] - totals: - - localIdentifier: grand_total1 - function: SUM - metric: price - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - - localIdentifier: grand_total2 - function: MAX - metric: order_amount - totalDimensions: - - dimensionIdentifier: dim_0 - totalDimensionItems: - - state - - measureGroup - resultSize: 15444 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a21604101728ffa3fb0d66db5b6e6330c7460949%3Acc7a597c23790dd333c113f272f89c04a448bdc5eb81b2d2a92017d89dc790be?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24913' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - null - - null - - null - - null - - null - - null - - null - - null - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2294.87 - - 2170.62 - - 2137.33 - - 3676.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 2725.93 - - 2380.37 - - 2158.09 - - 3676.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - 527.93 - - 316.18 - - 454.73 - - 3384.84 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 738.82 - - 422.57 - - 454.73 - - 3384.84 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 11367.24 - - 11524.88 - - 8522.94 - - 25996.75 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 13561.15 - - 13729.96 - - 9700.71 - - 30393.45 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1478.95 - - 1839.72 - - 1030.04 - - 5663.31 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1514.89 - - 2325.39 - - 1366.28 - - 5663.31 - - - null - - null - - null - - null - - 871.42 - - 887.3 - - 594.45 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1014.93 - - 1048.14 - - 594.45 - - 538.99 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 541.01 - - 906.16 - - 437.49 - - 1355.06 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 717.46 - - 906.16 - - 556.68 - - 1355.06 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2518.14 - - 3262.11 - - 3018.14 - - 7595.78 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 3019.08 - - 3945.61 - - 3554.04 - - 7595.78 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 8476.07 - - 8258.54 - - 5960.21 - - 19294.85 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 10448.66 - - 10548.47 - - 6688.79 - - 25807.35 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1973.23 - - 1805.62 - - 1053.23 - - 5033.19 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2601.99 - - 2152.51 - - 1294.96 - - 5985.75 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 638.98 - - 758.13 - - 396.08 - - 3426.72 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 893.14 - - 758.13 - - 396.08 - - 3426.72 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 316.43 - - 299.91 - - 96.27 - - 1128.03 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 454.71 - - 383.62 - - 178.1 - - 3384.09 - - - 2018.99 - - 1936.08 - - 1644.01 - - 3205.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2535.21 - - 2325.5 - - 1667.22 - - 3205.41 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 963.25 - - 1115.49 - - 286.41 - - 3617.55 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1190.44 - - 1178.01 - - 286.41 - - 3939.72 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1858.1 - - 1819.59 - - 1491.35 - - 3298.64 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2263.12 - - 2474.87 - - 1491.35 - - 3542.07 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 802.06 - - 603.3 - - 749.37 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 882.27 - - 674.41 - - 864.05 - - 2349.06 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1304.99 - - 1039.04 - - 311.97 - - 223.09 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1671.49 - - 1153.3 - - 311.97 - - 446.18 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1274.22 - - 1727.11 - - 1324.48 - - 2185.98 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1368.62 - - 1943.0 - - 1749.62 - - 2185.98 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1558.28 - - 952.3 - - 1563.19 - - 4344.16 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1952.49 - - 1226.85 - - 2208.04 - - 6919.63 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 955.93 - - 1051.5 - - 418.92 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1055.56 - - 1729.45 - - 418.92 - - 1624.52 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 989.47 - - 1581.46 - - 1817.19 - - 3357.3 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1104.14 - - 1767.83 - - 2663.57 - - 5617.86 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 1915.46 - - 2329.01 - - 1264.88 - - 2679.78 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2369.61 - - 2826.18 - - 1311.02 - - 3157.96 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 408.96 - - 549.99 - - 174.34 - - 2834.07 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 646.74 - - 790.98 - - 174.34 - - 2834.07 - - null - - null - - null - - null - - null - - - 2065.18 - - 1512.2 - - 1922.63 - - 3046.57 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2541.12 - - 1961.18 - - 2653.67 - - 3763.37 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 597.1 - - 596.79 - - 190.5 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 701.11 - - 596.79 - - 373.65 - - null - - - 586.37 - - 770.11 - - 535.43 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 742.46 - - 770.11 - - 535.43 - - 666.19 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 739.23 - - 567.73 - - 137.81 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 969.9 - - 893.17 - - 172.97 - - null - - - null - - null - - null - - null - - 220.46 - - null - - 161.73 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 360.16 - - null - - 161.73 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1007.04 - - 537.52 - - 356.46 - - 231.84 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 1129.66 - - 725.32 - - 356.46 - - 231.84 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 462.58 - - 540.36 - - 326.03 - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 523.96 - - 540.36 - - 440.93 - - null - - - null - - null - - null - - null - - 5004.64 - - 4631.73 - - 3316.02 - - 8734.63 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 6162.98 - - 6433.78 - - 3995.11 - - 13727.01 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1802.4 - - 1450.21 - - 1567.11 - - 4056.46 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 2176.17 - - 1686.28 - - 1704.0 - - 4879.18 - - null - - null - - null - - null - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 102.03 - - 60.78 - - 13.9 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 3463.82 - - 3532.76 - - 2498.84 - - 4076.75 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 4467.47 - - 4133.16 - - 3377.52 - - 7939.25 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 772.05 - - 876.39 - - 771.44 - - 6328.89 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1048.43 - - 876.39 - - 858.2 - - 6328.89 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1213.9 - - 676.67 - - 801.92 - - 1772.62 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1575.07 - - 1173.63 - - 801.92 - - 2074.55 - - - null - - null - - null - - null - - 1677.18 - - 1746.76 - - 952.05 - - 9179.44 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - 2310.61 - - 2306.18 - - 1078.41 - - 9706.62 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 18.7 - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1096.89 - - 541.59 - - 612.65 - - 1184.6 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1259.77 - - 541.59 - - 612.65 - - 1184.6 - - null - - null - - null - - null - - null - - - 236.34 - - 184.82 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 393.47 - - 281.19 - - 218.89 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1585.4 - - 1291.99 - - 616.68 - - 1649.85 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 1995.05 - - 1291.99 - - 616.68 - - 1886.52 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 9041.19 - - 8688.2 - - 7196.91 - - 19327.65 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 11279.19 - - 10307.9 - - 8293.87 - - 22670.23 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1069.48 - - 1244.55 - - 835.05 - - 5211.52 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1394.01 - - 1429.29 - - 835.05 - - 6042.93 - - - null - - null - - null - - null - - null - - null - - null - - null - - 3201.61 - - 2547.68 - - 2806.15 - - 7141.49 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 3617.53 - - 2863.09 - - 3446.67 - - 7397.6 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 978.06 - - 925.18 - - 528.25 - - 3787.89 - - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - 1225.73 - - 1010.03 - - 973.49 - - 4246.86 - - - null - - null - - null - - null - - null - - null - - null - - null - - 571.06 - - 750.01 - - 810.47 - - 523.09 - - null - - null - - null - - null - - null - - - null - - null - - null - - null - - null - - null - - null - - null - - 681.94 - - 750.01 - - 1176.32 - - 523.09 - - null - - null - - null - - null - - null - - - 1869.53 - - 1813.39 - - 1321.08 - - 5646.42 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - - 2146.81 - - 2638.54 - - 1684.95 - - 5646.42 - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - - null - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: - - data: - - - 6198.55 - - null - - - null - - 3837.42 - - - 4983.360000000001 - - null - - - null - - 2664.71 - - - 10279.68 - - null - - - null - - 3676.86 - - - 4683.68 - - null - - - null - - 3384.84 - - - 57411.81 - - null - - - null - - 30393.45 - - - 10012.02 - - null - - - null - - 5663.31 - - - 2892.16 - - null - - - null - - 1048.14 - - - 3239.7200000000003 - - null - - - null - - 1355.06 - - - 16394.17 - - null - - - null - - 7595.78 - - - 41989.67 - - null - - - null - - 25807.35 - - - 9865.27 - - null - - - null - - 5985.75 - - - 5219.91 - - null - - - null - - 3426.72 - - - 1840.6399999999999 - - null - - - null - - 3384.09 - - - 8804.49 - - null - - - null - - 3205.41 - - - 5982.7 - - null - - - null - - 3939.72 - - - 8467.68 - - null - - - null - - 3542.07 - - - 4503.79 - - null - - - null - - 2349.06 - - - 2879.09 - - null - - - null - - 1671.49 - - - 6511.79 - - null - - - null - - 2185.98 - - - 8417.93 - - null - - - null - - 6919.63 - - - 4050.87 - - null - - - null - - 1729.45 - - - 7745.42 - - null - - - null - - 5617.86 - - - 8189.130000000001 - - null - - - null - - 3157.96 - - - 3967.36 - - null - - - null - - 2834.07 - - - 8546.58 - - null - - - null - - 3763.37 - - - 1384.3899999999999 - - null - - - null - - 701.11 - - - 2558.1 - - null - - - null - - 770.11 - - - 1444.77 - - null - - - null - - 969.9 - - - 382.19 - - null - - - null - - 360.16 - - - 2132.86 - - null - - - null - - 1129.66 - - - 1328.97 - - null - - - null - - 540.36 - - - 21687.02 - - null - - - null - - 13727.01 - - - 8876.18 - - null - - - null - - 4879.18 - - - 176.71 - - null - - - null - - 102.03 - - - 13572.17 - - null - - - null - - 7939.25 - - - 8748.77 - - null - - - null - - 6328.89 - - - 4465.11 - - null - - - null - - 2074.55 - - - 13555.43 - - null - - - null - - 9706.62 - - - 18.7 - - null - - - null - - 18.7 - - - 3435.73 - - null - - - null - - 1259.77 - - - 640.05 - - null - - - null - - 393.47 - - - 5143.92 - - null - - - null - - 1995.05 - - - 44253.950000000004 - - null - - - null - - 22670.23 - - - 8360.6 - - null - - - null - - 6042.93 - - - 15696.93 - - null - - - null - - 7397.6 - - - 6219.379999999999 - - null - - - null - - 4246.86 - - - 2654.63 - - null - - - null - - 1176.32 - - - 10650.42 - - null - - - null - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - - headers: - - totalHeader: - function: SUM - - totalHeader: - function: MAX - totalDimensions: - - dim_0 - paging: - count: - - 96 - - 17 - offset: - - 0 - - 0 - total: - - 96 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml deleted file mode 100644 index 847fad9ff..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml +++ /dev/null @@ -1,2952 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - state - - region - localIdentifier: dim_0 - - itemIdentifiers: - - product_category - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - bf81f154-1316-4958-9932-261b009e5d7b - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - region - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 4625 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '11340' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - null - - null - - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - null - - null - - - 220.46 - - 360.16 - - null - - null - - 161.73 - - 161.73 - - null - - null - - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - null - - null - - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - null - - null - - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - null - - null - - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 48 - - 8 - offset: - - 0 - - 0 - total: - - 48 - - 8 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - region - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 4625 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '11340' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - null - - null - - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - null - - null - - - 220.46 - - 360.16 - - null - - null - - 161.73 - - 161.73 - - null - - null - - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - null - - null - - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - null - - null - - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - null - - null - - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 48 - - 8 - offset: - - 0 - - 0 - total: - - 48 - - 8 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b:e33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - state - - region - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - product_category - - measureGroup - sorting: [] - totals: [] - resultSize: 4625 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/48aa1fc5bf17853aa3ac4a33f9dda22734fcb94b%3Ae33977b62092c94a076d5be31f8b2d2ffa819a43086b219546f7e0592e39af67?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '11340' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - - 790.0 - - 963.08 - - 869.41 - - 890.67 - - 659.24 - - 926.38 - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - 2170.62 - - 2380.37 - - 2137.33 - - 2158.09 - - 3676.86 - - 3676.86 - - - 527.93 - - 738.82 - - 316.18 - - 422.57 - - 454.73 - - 454.73 - - 3384.84 - - 3384.84 - - - 11367.24 - - 13561.15 - - 11524.88 - - 13729.96 - - 8522.94 - - 9700.71 - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - 1839.72 - - 2325.39 - - 1030.04 - - 1366.28 - - 5663.31 - - 5663.31 - - - 871.42 - - 1014.93 - - 887.3 - - 1048.14 - - 594.45 - - 594.45 - - 538.99 - - 538.99 - - - 541.01 - - 717.46 - - 906.16 - - 906.16 - - 437.49 - - 556.68 - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - 3262.11 - - 3945.61 - - 3018.14 - - 3554.04 - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - 8258.54 - - 10548.47 - - 5960.21 - - 6688.79 - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - 1805.62 - - 2152.51 - - 1053.23 - - 1294.96 - - 5033.19 - - 5985.75 - - - 638.98 - - 893.14 - - 758.13 - - 758.13 - - 396.08 - - 396.08 - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - 299.91 - - 383.62 - - 96.27 - - 178.1 - - 1128.03 - - 3384.09 - - - 2018.99 - - 2535.21 - - 1936.08 - - 2325.5 - - 1644.01 - - 1667.22 - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - 1115.49 - - 1178.01 - - 286.41 - - 286.41 - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - 1819.59 - - 2474.87 - - 1491.35 - - 1491.35 - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - 603.3 - - 674.41 - - 749.37 - - 864.05 - - 2349.06 - - 2349.06 - - - 1304.99 - - 1671.49 - - 1039.04 - - 1153.3 - - 311.97 - - 311.97 - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - 1727.11 - - 1943.0 - - 1324.48 - - 1749.62 - - 2185.98 - - 2185.98 - - - 1558.28 - - 1952.49 - - 952.3 - - 1226.85 - - 1563.19 - - 2208.04 - - 4344.16 - - 6919.63 - - - 955.93 - - 1055.56 - - 1051.5 - - 1729.45 - - 418.92 - - 418.92 - - 1624.52 - - 1624.52 - - - 989.47 - - 1104.14 - - 1581.46 - - 1767.83 - - 1817.19 - - 2663.57 - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - 2329.01 - - 2826.18 - - 1264.88 - - 1311.02 - - 2679.78 - - 3157.96 - - - 408.96 - - 646.74 - - 549.99 - - 790.98 - - 174.34 - - 174.34 - - 2834.07 - - 2834.07 - - - 2065.18 - - 2541.12 - - 1512.2 - - 1961.18 - - 1922.63 - - 2653.67 - - 3046.57 - - 3763.37 - - - 597.1 - - 701.11 - - 596.79 - - 596.79 - - 190.5 - - 373.65 - - null - - null - - - 586.37 - - 742.46 - - 770.11 - - 770.11 - - 535.43 - - 535.43 - - 666.19 - - 666.19 - - - 739.23 - - 969.9 - - 567.73 - - 893.17 - - 137.81 - - 172.97 - - null - - null - - - 220.46 - - 360.16 - - null - - null - - 161.73 - - 161.73 - - null - - null - - - 1007.04 - - 1129.66 - - 537.52 - - 725.32 - - 356.46 - - 356.46 - - 231.84 - - 231.84 - - - 462.58 - - 523.96 - - 540.36 - - 540.36 - - 326.03 - - 440.93 - - null - - null - - - 5004.64 - - 6162.98 - - 4631.73 - - 6433.78 - - 3316.02 - - 3995.11 - - 8734.63 - - 13727.01 - - - 1802.4 - - 2176.17 - - 1450.21 - - 1686.28 - - 1567.11 - - 1704.0 - - 4056.46 - - 4879.18 - - - 102.03 - - 102.03 - - 60.78 - - 60.78 - - 13.9 - - 13.9 - - null - - null - - - 3463.82 - - 4467.47 - - 3532.76 - - 4133.16 - - 2498.84 - - 3377.52 - - 4076.75 - - 7939.25 - - - 772.05 - - 1048.43 - - 876.39 - - 876.39 - - 771.44 - - 858.2 - - 6328.89 - - 6328.89 - - - 1213.9 - - 1575.07 - - 676.67 - - 1173.63 - - 801.92 - - 801.92 - - 1772.62 - - 2074.55 - - - 1677.18 - - 2310.61 - - 1746.76 - - 2306.18 - - 952.05 - - 1078.41 - - 9179.44 - - 9706.62 - - - 18.7 - - 18.7 - - null - - null - - null - - null - - null - - null - - - 1096.89 - - 1259.77 - - 541.59 - - 541.59 - - 612.65 - - 612.65 - - 1184.6 - - 1184.6 - - - 236.34 - - 393.47 - - 184.82 - - 281.19 - - 218.89 - - 218.89 - - null - - null - - - 1585.4 - - 1995.05 - - 1291.99 - - 1291.99 - - 616.68 - - 616.68 - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - 8688.2 - - 10307.9 - - 7196.91 - - 8293.87 - - 19327.65 - - 22670.23 - - - 1069.48 - - 1394.01 - - 1244.55 - - 1429.29 - - 835.05 - - 835.05 - - 5211.52 - - 6042.93 - - - 3201.61 - - 3617.53 - - 2547.68 - - 2863.09 - - 2806.15 - - 3446.67 - - 7141.49 - - 7397.6 - - - 978.06 - - 1225.73 - - 925.18 - - 1010.03 - - 528.25 - - 973.49 - - 3787.89 - - 4246.86 - - - 571.06 - - 681.94 - - 750.01 - - 750.01 - - 810.47 - - 1176.32 - - 523.09 - - 523.09 - - - 1869.53 - - 2146.81 - - 1813.39 - - 2638.54 - - 1321.08 - - 1684.95 - - 5646.42 - - 5646.42 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 48 - - 8 - offset: - - 0 - - 0 - total: - - 48 - - 8 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml deleted file mode 100644 index d0f6c5785..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml +++ /dev/null @@ -1,4742 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - region - - state - - product_category - localIdentifier: dim_0 - - itemIdentifiers: - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0f88f66c-ac59-41d8-8e77-3df6aa2472f9 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f248f7d594e9cc6f5b2cd20217c798d35175577:034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2201' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f248f7d594e9cc6f5b2cd20217c798d35175577:034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - measureGroup - sorting: [] - totals: [] - resultSize: 11457 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24973' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - - 1936.08 - - 2325.5 - - - 1644.01 - - 1667.22 - - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - - 1115.49 - - 1178.01 - - - 286.41 - - 286.41 - - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - - 1819.59 - - 2474.87 - - - 1491.35 - - 1491.35 - - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - - 603.3 - - 674.41 - - - 749.37 - - 864.05 - - - 2349.06 - - 2349.06 - - - 989.47 - - 1104.14 - - - 1581.46 - - 1767.83 - - - 1817.19 - - 2663.57 - - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - - 2329.01 - - 2826.18 - - - 1264.88 - - 1311.02 - - - 2679.78 - - 3157.96 - - - 2065.18 - - 2541.12 - - - 1512.2 - - 1961.18 - - - 1922.63 - - 2653.67 - - - 3046.57 - - 3763.37 - - - 586.37 - - 742.46 - - - 770.11 - - 770.11 - - - 535.43 - - 535.43 - - - 666.19 - - 666.19 - - - 102.03 - - 102.03 - - - 60.78 - - 60.78 - - - 13.9 - - 13.9 - - - 3463.82 - - 4467.47 - - - 3532.76 - - 4133.16 - - - 2498.84 - - 3377.52 - - - 4076.75 - - 7939.25 - - - 236.34 - - 393.47 - - - 184.82 - - 281.19 - - - 218.89 - - 218.89 - - - 1869.53 - - 2146.81 - - - 1813.39 - - 2638.54 - - - 1321.08 - - 1684.95 - - - 5646.42 - - 5646.42 - - - 871.42 - - 1014.93 - - - 887.3 - - 1048.14 - - - 594.45 - - 594.45 - - - 538.99 - - 538.99 - - - 955.93 - - 1055.56 - - - 1051.5 - - 1729.45 - - - 418.92 - - 418.92 - - - 1624.52 - - 1624.52 - - - 220.46 - - 360.16 - - - 161.73 - - 161.73 - - - 1007.04 - - 1129.66 - - - 537.52 - - 725.32 - - - 356.46 - - 356.46 - - - 231.84 - - 231.84 - - - 5004.64 - - 6162.98 - - - 4631.73 - - 6433.78 - - - 3316.02 - - 3995.11 - - - 8734.63 - - 13727.01 - - - 1677.18 - - 2310.61 - - - 1746.76 - - 2306.18 - - - 952.05 - - 1078.41 - - - 9179.44 - - 9706.62 - - - 652.4 - - 712.22 - - - 949.42 - - 1198.83 - - - 759.31 - - 927.48 - - - 3837.42 - - 3837.42 - - - 527.93 - - 738.82 - - - 316.18 - - 422.57 - - - 454.73 - - 454.73 - - - 3384.84 - - 3384.84 - - - 541.01 - - 717.46 - - - 906.16 - - 906.16 - - - 437.49 - - 556.68 - - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - - 3262.11 - - 3945.61 - - - 3018.14 - - 3554.04 - - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - - 8258.54 - - 10548.47 - - - 5960.21 - - 6688.79 - - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - - 1805.62 - - 2152.51 - - - 1053.23 - - 1294.96 - - - 5033.19 - - 5985.75 - - - 1304.99 - - 1671.49 - - - 1039.04 - - 1153.3 - - - 311.97 - - 311.97 - - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - - 1727.11 - - 1943.0 - - - 1324.48 - - 1749.62 - - - 2185.98 - - 2185.98 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 100 - - 2 - offset: - - 0 - - 0 - total: - - 182 - - 2 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d?offset=100%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '20057' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1558.28 - - 1952.49 - - - 952.3 - - 1226.85 - - - 1563.19 - - 2208.04 - - - 4344.16 - - 6919.63 - - - 408.96 - - 646.74 - - - 549.99 - - 790.98 - - - 174.34 - - 174.34 - - - 2834.07 - - 2834.07 - - - 1802.4 - - 2176.17 - - - 1450.21 - - 1686.28 - - - 1567.11 - - 1704.0 - - - 4056.46 - - 4879.18 - - - 772.05 - - 1048.43 - - - 876.39 - - 876.39 - - - 771.44 - - 858.2 - - - 6328.89 - - 6328.89 - - - 1096.89 - - 1259.77 - - - 541.59 - - 541.59 - - - 612.65 - - 612.65 - - - 1184.6 - - 1184.6 - - - 1585.4 - - 1995.05 - - - 1291.99 - - 1291.99 - - - 616.68 - - 616.68 - - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - - 8688.2 - - 10307.9 - - - 7196.91 - - 8293.87 - - - 19327.65 - - 22670.23 - - - 3201.61 - - 3617.53 - - - 2547.68 - - 2863.09 - - - 2806.15 - - 3446.67 - - - 7141.49 - - 7397.6 - - - 571.06 - - 681.94 - - - 750.01 - - 750.01 - - - 810.47 - - 1176.32 - - - 523.09 - - 523.09 - - - 18.7 - - 18.7 - - - 790.0 - - 963.08 - - - 869.41 - - 890.67 - - - 659.24 - - 926.38 - - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - - 2170.62 - - 2380.37 - - - 2137.33 - - 2158.09 - - - 3676.86 - - 3676.86 - - - 11367.24 - - 13561.15 - - - 11524.88 - - 13729.96 - - - 8522.94 - - 9700.71 - - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - - 1839.72 - - 2325.39 - - - 1030.04 - - 1366.28 - - - 5663.31 - - 5663.31 - - - 638.98 - - 893.14 - - - 758.13 - - 758.13 - - - 396.08 - - 396.08 - - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - - 299.91 - - 383.62 - - - 96.27 - - 178.1 - - - 1128.03 - - 3384.09 - - - 597.1 - - 701.11 - - - 596.79 - - 596.79 - - - 190.5 - - 373.65 - - - 739.23 - - 969.9 - - - 567.73 - - 893.17 - - - 137.81 - - 172.97 - - - 462.58 - - 523.96 - - - 540.36 - - 540.36 - - - 326.03 - - 440.93 - - - 1213.9 - - 1575.07 - - - 676.67 - - 1173.63 - - - 801.92 - - 801.92 - - - 1772.62 - - 2074.55 - - - 1069.48 - - 1394.01 - - - 1244.55 - - 1429.29 - - - 835.05 - - 835.05 - - - 5211.52 - - 6042.93 - - - 978.06 - - 1225.73 - - - 925.18 - - 1010.03 - - - 528.25 - - 973.49 - - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 82 - - 2 - offset: - - 100 - - 0 - total: - - 182 - - 2 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2201' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4f248f7d594e9cc6f5b2cd20217c798d35175577:034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - region - - state - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - measureGroup - sorting: [] - totals: [] - resultSize: 11457 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '24973' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - - 1936.08 - - 2325.5 - - - 1644.01 - - 1667.22 - - - 3205.41 - - 3205.41 - - - 963.25 - - 1190.44 - - - 1115.49 - - 1178.01 - - - 286.41 - - 286.41 - - - 3617.55 - - 3939.72 - - - 1858.1 - - 2263.12 - - - 1819.59 - - 2474.87 - - - 1491.35 - - 1491.35 - - - 3298.64 - - 3542.07 - - - 802.06 - - 882.27 - - - 603.3 - - 674.41 - - - 749.37 - - 864.05 - - - 2349.06 - - 2349.06 - - - 989.47 - - 1104.14 - - - 1581.46 - - 1767.83 - - - 1817.19 - - 2663.57 - - - 3357.3 - - 5617.86 - - - 1915.46 - - 2369.61 - - - 2329.01 - - 2826.18 - - - 1264.88 - - 1311.02 - - - 2679.78 - - 3157.96 - - - 2065.18 - - 2541.12 - - - 1512.2 - - 1961.18 - - - 1922.63 - - 2653.67 - - - 3046.57 - - 3763.37 - - - 586.37 - - 742.46 - - - 770.11 - - 770.11 - - - 535.43 - - 535.43 - - - 666.19 - - 666.19 - - - 102.03 - - 102.03 - - - 60.78 - - 60.78 - - - 13.9 - - 13.9 - - - 3463.82 - - 4467.47 - - - 3532.76 - - 4133.16 - - - 2498.84 - - 3377.52 - - - 4076.75 - - 7939.25 - - - 236.34 - - 393.47 - - - 184.82 - - 281.19 - - - 218.89 - - 218.89 - - - 1869.53 - - 2146.81 - - - 1813.39 - - 2638.54 - - - 1321.08 - - 1684.95 - - - 5646.42 - - 5646.42 - - - 871.42 - - 1014.93 - - - 887.3 - - 1048.14 - - - 594.45 - - 594.45 - - - 538.99 - - 538.99 - - - 955.93 - - 1055.56 - - - 1051.5 - - 1729.45 - - - 418.92 - - 418.92 - - - 1624.52 - - 1624.52 - - - 220.46 - - 360.16 - - - 161.73 - - 161.73 - - - 1007.04 - - 1129.66 - - - 537.52 - - 725.32 - - - 356.46 - - 356.46 - - - 231.84 - - 231.84 - - - 5004.64 - - 6162.98 - - - 4631.73 - - 6433.78 - - - 3316.02 - - 3995.11 - - - 8734.63 - - 13727.01 - - - 1677.18 - - 2310.61 - - - 1746.76 - - 2306.18 - - - 952.05 - - 1078.41 - - - 9179.44 - - 9706.62 - - - 652.4 - - 712.22 - - - 949.42 - - 1198.83 - - - 759.31 - - 927.48 - - - 3837.42 - - 3837.42 - - - 527.93 - - 738.82 - - - 316.18 - - 422.57 - - - 454.73 - - 454.73 - - - 3384.84 - - 3384.84 - - - 541.01 - - 717.46 - - - 906.16 - - 906.16 - - - 437.49 - - 556.68 - - - 1355.06 - - 1355.06 - - - 2518.14 - - 3019.08 - - - 3262.11 - - 3945.61 - - - 3018.14 - - 3554.04 - - - 7595.78 - - 7595.78 - - - 8476.07 - - 10448.66 - - - 8258.54 - - 10548.47 - - - 5960.21 - - 6688.79 - - - 19294.85 - - 25807.35 - - - 1973.23 - - 2601.99 - - - 1805.62 - - 2152.51 - - - 1053.23 - - 1294.96 - - - 5033.19 - - 5985.75 - - - 1304.99 - - 1671.49 - - - 1039.04 - - 1153.3 - - - 311.97 - - 311.97 - - - 223.09 - - 446.18 - - - 1274.22 - - 1368.62 - - - 1727.11 - - 1943.0 - - - 1324.48 - - 1749.62 - - - 2185.98 - - 2185.98 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 100 - - 2 - offset: - - 0 - - 0 - total: - - 182 - - 2 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4f248f7d594e9cc6f5b2cd20217c798d35175577%3A034a24d78d291c3643182fd7ce961ff17ae2946955280b9bf4e62bd55f00fb2d?offset=100%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '20057' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 1558.28 - - 1952.49 - - - 952.3 - - 1226.85 - - - 1563.19 - - 2208.04 - - - 4344.16 - - 6919.63 - - - 408.96 - - 646.74 - - - 549.99 - - 790.98 - - - 174.34 - - 174.34 - - - 2834.07 - - 2834.07 - - - 1802.4 - - 2176.17 - - - 1450.21 - - 1686.28 - - - 1567.11 - - 1704.0 - - - 4056.46 - - 4879.18 - - - 772.05 - - 1048.43 - - - 876.39 - - 876.39 - - - 771.44 - - 858.2 - - - 6328.89 - - 6328.89 - - - 1096.89 - - 1259.77 - - - 541.59 - - 541.59 - - - 612.65 - - 612.65 - - - 1184.6 - - 1184.6 - - - 1585.4 - - 1995.05 - - - 1291.99 - - 1291.99 - - - 616.68 - - 616.68 - - - 1649.85 - - 1886.52 - - - 9041.19 - - 11279.19 - - - 8688.2 - - 10307.9 - - - 7196.91 - - 8293.87 - - - 19327.65 - - 22670.23 - - - 3201.61 - - 3617.53 - - - 2547.68 - - 2863.09 - - - 2806.15 - - 3446.67 - - - 7141.49 - - 7397.6 - - - 571.06 - - 681.94 - - - 750.01 - - 750.01 - - - 810.47 - - 1176.32 - - - 523.09 - - 523.09 - - - 18.7 - - 18.7 - - - 790.0 - - 963.08 - - - 869.41 - - 890.67 - - - 659.24 - - 926.38 - - - 2664.71 - - 2664.71 - - - 2294.87 - - 2725.93 - - - 2170.62 - - 2380.37 - - - 2137.33 - - 2158.09 - - - 3676.86 - - 3676.86 - - - 11367.24 - - 13561.15 - - - 11524.88 - - 13729.96 - - - 8522.94 - - 9700.71 - - - 25996.75 - - 30393.45 - - - 1478.95 - - 1514.89 - - - 1839.72 - - 2325.39 - - - 1030.04 - - 1366.28 - - - 5663.31 - - 5663.31 - - - 638.98 - - 893.14 - - - 758.13 - - 758.13 - - - 396.08 - - 396.08 - - - 3426.72 - - 3426.72 - - - 316.43 - - 454.71 - - - 299.91 - - 383.62 - - - 96.27 - - 178.1 - - - 1128.03 - - 3384.09 - - - 597.1 - - 701.11 - - - 596.79 - - 596.79 - - - 190.5 - - 373.65 - - - 739.23 - - 969.9 - - - 567.73 - - 893.17 - - - 137.81 - - 172.97 - - - 462.58 - - 523.96 - - - 540.36 - - 540.36 - - - 326.03 - - 440.93 - - - 1213.9 - - 1575.07 - - - 676.67 - - 1173.63 - - - 801.92 - - 801.92 - - - 1772.62 - - 2074.55 - - - 1069.48 - - 1394.01 - - - 1244.55 - - 1429.29 - - - 835.05 - - 835.05 - - - 5211.52 - - 6042.93 - - - 978.06 - - 1225.73 - - - 925.18 - - 1010.03 - - - 528.25 - - 973.49 - - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 82 - - 2 - offset: - - 100 - - 0 - total: - - 182 - - 2 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml deleted file mode 100644 index 1c0022bc8..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml +++ /dev/null @@ -1,2924 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: region - - label: - identifier: - id: state - type: label - localIdentifier: state - - label: - identifier: - id: products.category - type: label - localIdentifier: product_category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - product_category - localIdentifier: dim_0 - - itemIdentifiers: - - region - - state - - measureGroup - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1219' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 53481267-2bb7-48d6-9102-e58dda48e9ef - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4ca7df7f1ef6889b936f76bb90f870fb82f0aa50:819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4ca7df7f1ef6889b936f76bb90f870fb82f0aa50%3A819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4ca7df7f1ef6889b936f76bb90f870fb82f0aa50:819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - totals: [] - resultSize: 3152 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4ca7df7f1ef6889b936f76bb90f870fb82f0aa50%3A819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '21462' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - 2065.18 - - 2541.12 - - 586.37 - - 742.46 - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - 236.34 - - 393.47 - - 1869.53 - - 2146.81 - - 871.42 - - 1014.93 - - 955.93 - - 1055.56 - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - 5004.64 - - 6162.98 - - 1677.18 - - 2310.61 - - 652.4 - - 712.22 - - 527.93 - - 738.82 - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - 408.96 - - 646.74 - - 1802.4 - - 2176.17 - - 772.05 - - 1048.43 - - 1096.89 - - 1259.77 - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - 3201.61 - - 3617.53 - - 571.06 - - 681.94 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - 597.1 - - 701.11 - - 739.23 - - 969.9 - - 462.58 - - 523.96 - - 1213.9 - - 1575.07 - - 1069.48 - - 1394.01 - - 978.06 - - 1225.73 - - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - 1512.2 - - 1961.18 - - 770.11 - - 770.11 - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - 184.82 - - 281.19 - - 1813.39 - - 2638.54 - - 887.3 - - 1048.14 - - 1051.5 - - 1729.45 - - null - - null - - 537.52 - - 725.32 - - 4631.73 - - 6433.78 - - 1746.76 - - 2306.18 - - 949.42 - - 1198.83 - - 316.18 - - 422.57 - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - 549.99 - - 790.98 - - 1450.21 - - 1686.28 - - 876.39 - - 876.39 - - 541.59 - - 541.59 - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - 2547.68 - - 2863.09 - - 750.01 - - 750.01 - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - 596.79 - - 596.79 - - 567.73 - - 893.17 - - 540.36 - - 540.36 - - 676.67 - - 1173.63 - - 1244.55 - - 1429.29 - - 925.18 - - 1010.03 - - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - 1922.63 - - 2653.67 - - 535.43 - - 535.43 - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - 218.89 - - 218.89 - - 1321.08 - - 1684.95 - - 594.45 - - 594.45 - - 418.92 - - 418.92 - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - 3316.02 - - 3995.11 - - 952.05 - - 1078.41 - - 759.31 - - 927.48 - - 454.73 - - 454.73 - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - 174.34 - - 174.34 - - 1567.11 - - 1704.0 - - 771.44 - - 858.2 - - 612.65 - - 612.65 - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - 2806.15 - - 3446.67 - - 810.47 - - 1176.32 - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - 190.5 - - 373.65 - - 137.81 - - 172.97 - - 326.03 - - 440.93 - - 801.92 - - 801.92 - - 835.05 - - 835.05 - - 528.25 - - 973.49 - - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - 3046.57 - - 3763.37 - - 666.19 - - 666.19 - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - 5646.42 - - 5646.42 - - 538.99 - - 538.99 - - 1624.52 - - 1624.52 - - null - - null - - 231.84 - - 231.84 - - 8734.63 - - 13727.01 - - 9179.44 - - 9706.62 - - 3837.42 - - 3837.42 - - 3384.84 - - 3384.84 - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - 2834.07 - - 2834.07 - - 4056.46 - - 4879.18 - - 6328.89 - - 6328.89 - - 1184.6 - - 1184.6 - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - 7141.49 - - 7397.6 - - 523.09 - - 523.09 - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - 5211.52 - - 6042.93 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 4 - - 96 - offset: - - 0 - - 0 - total: - - 4 - - 96 - metadata: - dataSourceMessages: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4ca7df7f1ef6889b936f76bb90f870fb82f0aa50%3A819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08/metadata - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2200' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - afm: - attributes: - - localIdentifier: region - label: - identifier: - id: region - type: label - showAllValues: false - - localIdentifier: state - label: - identifier: - id: state - type: label - showAllValues: false - - localIdentifier: product_category - label: - identifier: - id: products.category - type: label - showAllValues: false - filters: [] - measures: - - localIdentifier: price - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - - localIdentifier: order_amount - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - auxMeasures: [] - measureDefinitionOverrides: [] - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: product_category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: region - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: state - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_1 - links: - executionResult: 4ca7df7f1ef6889b936f76bb90f870fb82f0aa50:819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08 - resultSpec: - dimensions: - - localIdentifier: dim_0 - itemIdentifiers: - - product_category - sorting: [] - - localIdentifier: dim_1 - itemIdentifiers: - - region - - state - - measureGroup - sorting: [] - totals: [] - resultSize: 3152 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4ca7df7f1ef6889b936f76bb90f870fb82f0aa50%3A819f2fa08d5504d9d959d199059da921163d420481d46a151dd8185f992caa08?offset=0%2C0&limit=100%2C100 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '21462' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 2018.99 - - 2535.21 - - 963.25 - - 1190.44 - - 1858.1 - - 2263.12 - - 802.06 - - 882.27 - - 989.47 - - 1104.14 - - 1915.46 - - 2369.61 - - 2065.18 - - 2541.12 - - 586.37 - - 742.46 - - 102.03 - - 102.03 - - 3463.82 - - 4467.47 - - 236.34 - - 393.47 - - 1869.53 - - 2146.81 - - 871.42 - - 1014.93 - - 955.93 - - 1055.56 - - 220.46 - - 360.16 - - 1007.04 - - 1129.66 - - 5004.64 - - 6162.98 - - 1677.18 - - 2310.61 - - 652.4 - - 712.22 - - 527.93 - - 738.82 - - 541.01 - - 717.46 - - 2518.14 - - 3019.08 - - 8476.07 - - 10448.66 - - 1973.23 - - 2601.99 - - 1304.99 - - 1671.49 - - 1274.22 - - 1368.62 - - 1558.28 - - 1952.49 - - 408.96 - - 646.74 - - 1802.4 - - 2176.17 - - 772.05 - - 1048.43 - - 1096.89 - - 1259.77 - - 1585.4 - - 1995.05 - - 9041.19 - - 11279.19 - - 3201.61 - - 3617.53 - - 571.06 - - 681.94 - - 18.7 - - 18.7 - - 790.0 - - 963.08 - - 2294.87 - - 2725.93 - - 11367.24 - - 13561.15 - - 1478.95 - - 1514.89 - - 638.98 - - 893.14 - - 316.43 - - 454.71 - - 597.1 - - 701.11 - - 739.23 - - 969.9 - - 462.58 - - 523.96 - - 1213.9 - - 1575.07 - - 1069.48 - - 1394.01 - - 978.06 - - 1225.73 - - - 1936.08 - - 2325.5 - - 1115.49 - - 1178.01 - - 1819.59 - - 2474.87 - - 603.3 - - 674.41 - - 1581.46 - - 1767.83 - - 2329.01 - - 2826.18 - - 1512.2 - - 1961.18 - - 770.11 - - 770.11 - - 60.78 - - 60.78 - - 3532.76 - - 4133.16 - - 184.82 - - 281.19 - - 1813.39 - - 2638.54 - - 887.3 - - 1048.14 - - 1051.5 - - 1729.45 - - null - - null - - 537.52 - - 725.32 - - 4631.73 - - 6433.78 - - 1746.76 - - 2306.18 - - 949.42 - - 1198.83 - - 316.18 - - 422.57 - - 906.16 - - 906.16 - - 3262.11 - - 3945.61 - - 8258.54 - - 10548.47 - - 1805.62 - - 2152.51 - - 1039.04 - - 1153.3 - - 1727.11 - - 1943.0 - - 952.3 - - 1226.85 - - 549.99 - - 790.98 - - 1450.21 - - 1686.28 - - 876.39 - - 876.39 - - 541.59 - - 541.59 - - 1291.99 - - 1291.99 - - 8688.2 - - 10307.9 - - 2547.68 - - 2863.09 - - 750.01 - - 750.01 - - null - - null - - 869.41 - - 890.67 - - 2170.62 - - 2380.37 - - 11524.88 - - 13729.96 - - 1839.72 - - 2325.39 - - 758.13 - - 758.13 - - 299.91 - - 383.62 - - 596.79 - - 596.79 - - 567.73 - - 893.17 - - 540.36 - - 540.36 - - 676.67 - - 1173.63 - - 1244.55 - - 1429.29 - - 925.18 - - 1010.03 - - - 1644.01 - - 1667.22 - - 286.41 - - 286.41 - - 1491.35 - - 1491.35 - - 749.37 - - 864.05 - - 1817.19 - - 2663.57 - - 1264.88 - - 1311.02 - - 1922.63 - - 2653.67 - - 535.43 - - 535.43 - - 13.9 - - 13.9 - - 2498.84 - - 3377.52 - - 218.89 - - 218.89 - - 1321.08 - - 1684.95 - - 594.45 - - 594.45 - - 418.92 - - 418.92 - - 161.73 - - 161.73 - - 356.46 - - 356.46 - - 3316.02 - - 3995.11 - - 952.05 - - 1078.41 - - 759.31 - - 927.48 - - 454.73 - - 454.73 - - 437.49 - - 556.68 - - 3018.14 - - 3554.04 - - 5960.21 - - 6688.79 - - 1053.23 - - 1294.96 - - 311.97 - - 311.97 - - 1324.48 - - 1749.62 - - 1563.19 - - 2208.04 - - 174.34 - - 174.34 - - 1567.11 - - 1704.0 - - 771.44 - - 858.2 - - 612.65 - - 612.65 - - 616.68 - - 616.68 - - 7196.91 - - 8293.87 - - 2806.15 - - 3446.67 - - 810.47 - - 1176.32 - - null - - null - - 659.24 - - 926.38 - - 2137.33 - - 2158.09 - - 8522.94 - - 9700.71 - - 1030.04 - - 1366.28 - - 396.08 - - 396.08 - - 96.27 - - 178.1 - - 190.5 - - 373.65 - - 137.81 - - 172.97 - - 326.03 - - 440.93 - - 801.92 - - 801.92 - - 835.05 - - 835.05 - - 528.25 - - 973.49 - - - 3205.41 - - 3205.41 - - 3617.55 - - 3939.72 - - 3298.64 - - 3542.07 - - 2349.06 - - 2349.06 - - 3357.3 - - 5617.86 - - 2679.78 - - 3157.96 - - 3046.57 - - 3763.37 - - 666.19 - - 666.19 - - null - - null - - 4076.75 - - 7939.25 - - null - - null - - 5646.42 - - 5646.42 - - 538.99 - - 538.99 - - 1624.52 - - 1624.52 - - null - - null - - 231.84 - - 231.84 - - 8734.63 - - 13727.01 - - 9179.44 - - 9706.62 - - 3837.42 - - 3837.42 - - 3384.84 - - 3384.84 - - 1355.06 - - 1355.06 - - 7595.78 - - 7595.78 - - 19294.85 - - 25807.35 - - 5033.19 - - 5985.75 - - 223.09 - - 446.18 - - 2185.98 - - 2185.98 - - 4344.16 - - 6919.63 - - 2834.07 - - 2834.07 - - 4056.46 - - 4879.18 - - 6328.89 - - 6328.89 - - 1184.6 - - 1184.6 - - 1649.85 - - 1886.52 - - 19327.65 - - 22670.23 - - 7141.49 - - 7397.6 - - 523.09 - - 523.09 - - null - - null - - 2664.71 - - 2664.71 - - 3676.86 - - 3676.86 - - 25996.75 - - 30393.45 - - 5663.31 - - 5663.31 - - 3426.72 - - 3426.72 - - 1128.03 - - 3384.09 - - null - - null - - null - - null - - null - - null - - 1772.62 - - 2074.55 - - 5211.52 - - 6042.93 - - 3787.89 - - 4246.86 - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 4 - - 96 - offset: - - 0 - - 0 - total: - - 4 - - 96 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml deleted file mode 100644 index 12efaa0c8..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml +++ /dev/null @@ -1,498 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: reg - - label: - identifier: - id: products.category - type: label - localIdentifier: category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - reg - - category - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '949' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 87ccaffd-6034-4652-8eff-d66927fa2c8a - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: reg - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 114f01714d1177a1fc7b290ab0b597344b18a1f0:bd041a9490e3762ee48ddbff42f1bec67179ebe67fd7d4bf74c77faf70db832c - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/114f01714d1177a1fc7b290ab0b597344b18a1f0%3Abd041a9490e3762ee48ddbff42f1bec67179ebe67fd7d4bf74c77faf70db832c?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3135' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - 17258.99 - - 13763.98 - - 31943.67 - - 9736.67 - - 8854.81 - - 5799.63 - - 20309.42 - - 37305.83 - - 35912.54 - - 29438.5 - - 90300.47 - - 18.7 - - 21946.82 - - 22013.95 - - 15661.46 - - 53328.41 - - - 20738.15 - - 21091.76 - - 16767.98 - - 39827.31 - - 12033.9 - - 12242.87 - - 6605.08 - - 25828.98 - - 45935.65 - - 42605.53 - - 34629.04 - - 105222.17 - - 18.7 - - 26502.68 - - 26111.41 - - 18323.65 - - 61573.48 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 2 - - 17 - offset: - - 0 - - 0 - total: - - 2 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml deleted file mode 100644 index 587603ece..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml +++ /dev/null @@ -1,498 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: reg - - label: - identifier: - id: products.category - type: label - localIdentifier: category - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: price - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: order_amount - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - reg - - category - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '949' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 70f092cc-0fc8-45e6-97db-08be4cb3c94f - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: price - - localIdentifier: order_amount - format: $#,##0 - name: Order Amount - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: reg - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: category - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 114f01714d1177a1fc7b290ab0b597344b18a1f0:bd041a9490e3762ee48ddbff42f1bec67179ebe67fd7d4bf74c77faf70db832c - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/114f01714d1177a1fc7b290ab0b597344b18a1f0%3Abd041a9490e3762ee48ddbff42f1bec67179ebe67fd7d4bf74c77faf70db832c?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3135' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - 17258.99 - - 13763.98 - - 31943.67 - - 9736.67 - - 8854.81 - - 5799.63 - - 20309.42 - - 37305.83 - - 35912.54 - - 29438.5 - - 90300.47 - - 18.7 - - 21946.82 - - 22013.95 - - 15661.46 - - 53328.41 - - - 20738.15 - - 21091.76 - - 16767.98 - - 39827.31 - - 12033.9 - - 12242.87 - - 6605.08 - - 25828.98 - - 45935.65 - - 42605.53 - - 34629.04 - - 105222.17 - - 18.7 - - 26502.68 - - 26111.41 - - 18323.65 - - 61573.48 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 2 - - 17 - offset: - - 0 - - 0 - total: - - 2 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization.yaml deleted file mode 100644 index 1f7248b3d..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization.yaml +++ /dev/null @@ -1,820 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '5096' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - title: Revenue and Quantity by Product and Category - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_and_quantity_by_product_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_in_category - type: metric - - id: revenue - type: metric - facts: - data: - - id: quantity - type: fact - - id: price - type: fact - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - - id: customer_name - type: label - type: visualizationObject - included: - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Revenue - description: '' - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - type: metric - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: '% Revenue in Category' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - type: metric - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - - label: - identifier: - id: product_name - type: label - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: AVG - computeRatio: false - filters: [] - localIdentifier: aa6391acccf1452f8011201aef9af492 - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 06bc6b3b9949466494e4f594c11f1bff - - 192668bfb6a74e9ab7b5d1ce7cb68ea3 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1235' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 464ad0d3-cd57-4a89-ae01-7d6e05d423fc - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - localIdentifier: aa6391acccf1452f8011201aef9af492 - - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - format: $#,##0 - name: Revenue - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 4eea8eeeafa569b6e9e5ec3a23e6f24f37fed284:e2c933e10be027fa413723c865dc7fbe3ed971587f9a5bab6ae7139572903dd2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28products.category%2Cproduct_name%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2472' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27product_name%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27product_name%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4eea8eeeafa569b6e9e5ec3a23e6f24f37fed284%3Ae2c933e10be027fa413723c865dc7fbe3ed971587f9a5bab6ae7139572903dd2?offset=0%2C0&limit=4%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4061' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 449.0 - - 172.0 - - 727.0 - - 854.0 - - 557.0 - - 1096.0 - - 149.0 - - 253.0 - - 571.0 - - 735.0 - - 144.0 - - 258.0 - - 386.0 - - 542.0 - - 147.0 - - 58.0 - - 63.0 - - 71.0 - - - 41.320524781341106 - - 46.30830065359477 - - 26.586969178082192 - - 21.873084648493546 - - 36.620566448801746 - - 18.500912052117265 - - 115.06585365853658 - - 57.807943925233644 - - 86.17856223175966 - - 28.59485996705107 - - 37.45467213114754 - - 76.52254545454545 - - 114.36082822085889 - - 12.718106382978723 - - 260.141512605042 - - 553.8807547169812 - - 811.6090566037736 - - 1568.7147457627118 - - - 0.17725916115332446 - - 0.07819070840973427 - - 0.18452791227743862 - - 0.17461697017263958 - - 0.19551673364684496 - - 0.1898885143400181 - - 0.15973175146727148 - - 0.14394284849088326 - - 0.48763974231358437 - - 0.20868565772826095 - - 0.06838997246733888 - - 0.25553420960278433 - - 0.5833271466249879 - - 0.09274867130488894 - - 0.16556859291478074 - - 0.13199641470235435 - - 0.22793065968694112 - - 0.47450433269592374 - - - 16744.48 - - 7386.15 - - 17431.11 - - 16494.89 - - 18469.15 - - 17937.49 - - 14421.37 - - 12995.87 - - 44026.52 - - 18841.17 - - 4725.73 - - 17657.35 - - 40307.76 - - 6408.91 - - 34697.71 - - 27662.09 - - 47766.74 - - 99440.44 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Polo Shirt - primaryLabelValue: Polo Shirt - - attributeHeader: - labelValue: Pullover - primaryLabelValue: Pullover - - attributeHeader: - labelValue: Shorts - primaryLabelValue: Shorts - - attributeHeader: - labelValue: Skirt - primaryLabelValue: Skirt - - attributeHeader: - labelValue: Slacks - primaryLabelValue: Slacks - - attributeHeader: - labelValue: T-Shirt - primaryLabelValue: T-Shirt - - attributeHeader: - labelValue: Artego - primaryLabelValue: Artego - - attributeHeader: - labelValue: Compglass - primaryLabelValue: Compglass - - attributeHeader: - labelValue: Magnemo - primaryLabelValue: Magnemo - - attributeHeader: - labelValue: PortaCode - primaryLabelValue: PortaCode - - attributeHeader: - labelValue: Applica - primaryLabelValue: Applica - - attributeHeader: - labelValue: ChalkTalk - primaryLabelValue: ChalkTalk - - attributeHeader: - labelValue: Optique - primaryLabelValue: Optique - - attributeHeader: - labelValue: Peril - primaryLabelValue: Peril - - attributeHeader: - labelValue: Biolid - primaryLabelValue: Biolid - - attributeHeader: - labelValue: Elentrix - primaryLabelValue: Elentrix - - attributeHeader: - labelValue: Integres - primaryLabelValue: Integres - - attributeHeader: - labelValue: Neptide - primaryLabelValue: Neptide - grandTotals: [] - paging: - count: - - 4 - - 18 - offset: - - 0 - - 0 - total: - - 4 - - 18 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_date.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_date.yaml deleted file mode 100644 index 8956a535e..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_date.yaml +++ /dev/null @@ -1,535 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend?include=ALL - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3322' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - title: Customers Trend - areRelationsValid: true - 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: -12 - granularity: GDC.time.month - to: -1 - 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 - createdAt: 2025-08-07 11:45 - id: customers_trend - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: amount_of_active_customers - type: metric - - id: revenue_per_customer - type: metric - datasets: - data: - - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: visualizationObject - included: - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Date - description: '' - tags: - - Date - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - type: dataset - - attributes: - title: '# of Active Customers' - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2025-08-07 11:45 - id: amount_of_active_customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers - type: metric - - attributes: - title: Revenue per Customer - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2025-08-07 11:45 - id: revenue_per_customer - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - type: metric - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/customers_trend?include=ALL - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: date.month - type: label - localIdentifier: 0de7d7f08af7480aa636857a26be72b6 - filters: - - relativeDateFilter: - dataset: - identifier: - id: date - type: dataset - from: -12 - granularity: MONTH - to: -1 - measures: - - definition: - measure: - item: - identifier: - id: amount_of_active_customers - type: metric - computeRatio: false - filters: [] - localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 - - definition: - measure: - item: - identifier: - id: revenue_per_customer - type: metric - computeRatio: false - filters: [] - localIdentifier: ec0606894b9f4897b7beaf1550608928 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 0de7d7f08af7480aa636857a26be72b6 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '883' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 9673cb94-a2ea-45aa-ad03-3029765da0ff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 - format: '#,##0' - name: '# of Active Customers' - - localIdentifier: ec0606894b9f4897b7beaf1550608928 - format: $#,##0.0 - name: Revenue per Customer - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 0de7d7f08af7480aa636857a26be72b6 - label: - id: date.month - type: label - labelName: Date - Month/Year - attribute: - id: date.month - type: attribute - attributeName: Date - Month/Year - granularity: MONTH - primaryLabel: - id: date.month - type: label - format: - locale: en-US - pattern: MMM y - timezone: Etc/UTC - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 4dc702f450ffdb0d4b6615dec896c194ebaca0e7:f8503553498384623b38b4abc1a4dcb53f005d91eac729dd60b84aee9d6f68bb - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28date.month%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1261' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - granularity: MONTH - areRelationsValid: true - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/date.month - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: date - type: dataset - labels: - data: - - id: date.month - type: label - type: attribute - included: - - attributes: - title: Date - description: '' - tags: - - Date - type: DATE - id: date - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - type: dataset - - attributes: - title: Date - Month/Year - description: Month and Year (12/2020) - tags: - - Date - primary: true - sourceColumn: '' - id: date.month - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/date.month - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27date.month%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27date.month%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4dc702f450ffdb0d4b6615dec896c194ebaca0e7%3Af8503553498384623b38b4abc1a4dcb53f005d91eac729dd60b84aee9d6f68bb?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1403' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 62 - - 60 - - 51 - - 60 - - 55 - - 86 - - 89 - - 72 - - 56 - - 90 - - 60 - - 64 - - - 93.78964285714285 - - 115.96454545454546 - - 241.92872340425532 - - 270.91346938775513 - - 92.0542 - - 251.6236842105263 - - 204.48873417721518 - - 187.41 - - 160.19469387755103 - - 178.3658536585366 - - 185.4194 - - 146.6475 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: 2025-03 - primaryLabelValue: 2025-03 - - attributeHeader: - labelValue: 2025-04 - primaryLabelValue: 2025-04 - - attributeHeader: - labelValue: 2025-05 - primaryLabelValue: 2025-05 - - attributeHeader: - labelValue: 2025-06 - primaryLabelValue: 2025-06 - - attributeHeader: - labelValue: 2025-07 - primaryLabelValue: 2025-07 - - attributeHeader: - labelValue: 2025-08 - primaryLabelValue: 2025-08 - - attributeHeader: - labelValue: 2025-09 - primaryLabelValue: 2025-09 - - attributeHeader: - labelValue: 2025-10 - primaryLabelValue: 2025-10 - - attributeHeader: - labelValue: 2025-11 - primaryLabelValue: 2025-11 - - attributeHeader: - labelValue: 2025-12 - primaryLabelValue: 2025-12 - - attributeHeader: - labelValue: 2026-01 - primaryLabelValue: 2026-01 - - attributeHeader: - labelValue: 2026-02 - primaryLabelValue: 2026-02 - grandTotals: [] - paging: - count: - - 2 - - 12 - offset: - - 0 - - 0 - total: - - 2 - - 12 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_no_index.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_no_index.yaml deleted file mode 100644 index 8454e23bc..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_visualization_no_index.yaml +++ /dev/null @@ -1,820 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '5096' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - title: Revenue and Quantity by Product and Category - areRelationsValid: true - 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 - createdAt: 2025-08-07 11:45 - id: revenue_and_quantity_by_product_and_category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - createdBy: - data: - id: admin - type: userIdentifier - metrics: - data: - - id: percent_revenue_in_category - type: metric - - id: revenue - type: metric - facts: - data: - - id: quantity - type: fact - - id: price - type: fact - labels: - data: - - id: products.category - type: label - - id: product_name - type: label - - id: customer_name - type: label - type: visualizationObject - included: - - attributes: - title: Quantity - description: Quantity - tags: - - Order lines - sourceColumn: quantity - sourceColumnDataType: NUMERIC - isNullable: true - id: quantity - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/quantity - type: fact - - attributes: - title: Revenue - description: '' - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - createdAt: 2025-08-07 11:45 - id: revenue - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - type: metric - - attributes: - title: Price - description: Price - tags: - - Order lines - sourceColumn: price - sourceColumnDataType: NUMERIC - isNullable: true - id: price - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/facts/price - type: fact - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: {} - id: admin - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/userIdentifiers/admin - type: userIdentifier - - attributes: - title: Customer name - description: Customer name - tags: - - Customers - primary: true - sourceColumn: customer_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: customer_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/customer_name - type: label - - attributes: - title: '% Revenue in Category' - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, - ALL OTHER) - createdAt: 2025-08-07 11:45 - id: percent_revenue_in_category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - type: metric - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/visualizationObjects/revenue_and_quantity_by_product_and_category?include=ALL - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - - label: - identifier: - id: product_name - type: label - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: AVG - computeRatio: false - filters: [] - localIdentifier: aa6391acccf1452f8011201aef9af492 - - definition: - measure: - item: - identifier: - id: percent_revenue_in_category - type: metric - computeRatio: false - filters: [] - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 06bc6b3b9949466494e4f594c11f1bff - - 192668bfb6a74e9ab7b5d1ce7cb68ea3 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1235' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - ccb9dd92-4b8a-4e1c-be32-9798bba1beab - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 - - localIdentifier: aa6391acccf1452f8011201aef9af492 - - localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 - format: '#,##0.0%' - name: '% Revenue in Category' - - localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a - format: $#,##0 - name: Revenue - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 06bc6b3b9949466494e4f594c11f1bff - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 4eea8eeeafa569b6e9e5ec3a23e6f24f37fed284:e2c933e10be027fa413723c865dc7fbe3ed971587f9a5bab6ae7139572903dd2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28products.category%2Cproduct_name%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2472' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27product_name%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27product_name%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4eea8eeeafa569b6e9e5ec3a23e6f24f37fed284%3Ae2c933e10be027fa413723c865dc7fbe3ed971587f9a5bab6ae7139572903dd2?offset=0%2C0&limit=4%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4061' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 449.0 - - 172.0 - - 727.0 - - 854.0 - - 557.0 - - 1096.0 - - 149.0 - - 253.0 - - 571.0 - - 735.0 - - 144.0 - - 258.0 - - 386.0 - - 542.0 - - 147.0 - - 58.0 - - 63.0 - - 71.0 - - - 41.320524781341106 - - 46.30830065359477 - - 26.586969178082192 - - 21.873084648493546 - - 36.620566448801746 - - 18.500912052117265 - - 115.06585365853658 - - 57.807943925233644 - - 86.17856223175966 - - 28.59485996705107 - - 37.45467213114754 - - 76.52254545454545 - - 114.36082822085889 - - 12.718106382978723 - - 260.141512605042 - - 553.8807547169812 - - 811.6090566037736 - - 1568.7147457627118 - - - 0.17725916115332446 - - 0.07819070840973427 - - 0.18452791227743862 - - 0.17461697017263958 - - 0.19551673364684496 - - 0.1898885143400181 - - 0.15973175146727148 - - 0.14394284849088326 - - 0.48763974231358437 - - 0.20868565772826095 - - 0.06838997246733888 - - 0.25553420960278433 - - 0.5833271466249879 - - 0.09274867130488894 - - 0.16556859291478074 - - 0.13199641470235435 - - 0.22793065968694112 - - 0.47450433269592374 - - - 16744.48 - - 7386.15 - - 17431.11 - - 16494.89 - - 18469.15 - - 17937.49 - - 14421.37 - - 12995.87 - - 44026.52 - - 18841.17 - - 4725.73 - - 17657.35 - - 40307.76 - - 6408.91 - - 34697.71 - - 27662.09 - - 47766.74 - - 99440.44 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - measureHeader: - measureIndex: 2 - - measureHeader: - measureIndex: 3 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Polo Shirt - primaryLabelValue: Polo Shirt - - attributeHeader: - labelValue: Pullover - primaryLabelValue: Pullover - - attributeHeader: - labelValue: Shorts - primaryLabelValue: Shorts - - attributeHeader: - labelValue: Skirt - primaryLabelValue: Skirt - - attributeHeader: - labelValue: Slacks - primaryLabelValue: Slacks - - attributeHeader: - labelValue: T-Shirt - primaryLabelValue: T-Shirt - - attributeHeader: - labelValue: Artego - primaryLabelValue: Artego - - attributeHeader: - labelValue: Compglass - primaryLabelValue: Compglass - - attributeHeader: - labelValue: Magnemo - primaryLabelValue: Magnemo - - attributeHeader: - labelValue: PortaCode - primaryLabelValue: PortaCode - - attributeHeader: - labelValue: Applica - primaryLabelValue: Applica - - attributeHeader: - labelValue: ChalkTalk - primaryLabelValue: ChalkTalk - - attributeHeader: - labelValue: Optique - primaryLabelValue: Optique - - attributeHeader: - labelValue: Peril - primaryLabelValue: Peril - - attributeHeader: - labelValue: Biolid - primaryLabelValue: Biolid - - attributeHeader: - labelValue: Elentrix - primaryLabelValue: Elentrix - - attributeHeader: - labelValue: Integres - primaryLabelValue: Integres - - attributeHeader: - labelValue: Neptide - primaryLabelValue: Neptide - grandTotals: [] - paging: - count: - - 4 - - 18 - offset: - - 0 - - 0 - total: - - 4 - - 18 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml deleted file mode 100644 index dbecd3456..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml +++ /dev/null @@ -1,280 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: product_name - type: label - localIdentifier: b8dfd97d05f8e90cf7972d4f5d11aa6f - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: amount_of_top_customers - type: metric - computeRatio: false - filters: [] - localIdentifier: 4139b3859d1bd4272480debf80d356ba - - definition: - measure: - item: - identifier: - id: total_revenue-no_filters - type: metric - computeRatio: false - filters: [] - localIdentifier: eddb24369ee4328eb3bbebe78d45ad2d - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - b8dfd97d05f8e90cf7972d4f5d11aa6f - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '810' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 77adbe53-46f4-48ef-978b-d3b17db8ed9f - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 4139b3859d1bd4272480debf80d356ba - format: '#,##0' - name: '# of Top Customers' - - localIdentifier: eddb24369ee4328eb3bbebe78d45ad2d - format: $#,##0 - name: Total Revenue (No Filters) - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: b8dfd97d05f8e90cf7972d4f5d11aa6f - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 693663b5b076fc4e974bca272cf591c2ba17855c:f0b0337ceccba73e40f422f1503443d52f913a108764b7a3405b55c42ecf5c6b - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28product_name%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1553' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27product_name%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27product_name%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/693663b5b076fc4e974bca272cf591c2ba17855c%3Af0b0337ceccba73e40f422f1503443d52f913a108764b7a3405b55c42ecf5c6b?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '208' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: [] - - headerGroups: - - headers: [] - grandTotals: [] - paging: - count: - - 0 - - 0 - offset: - - 0 - - 0 - total: - - 0 - - 0 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml deleted file mode 100644 index c25b0ac8f..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml +++ /dev/null @@ -1,280 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: product_name - type: label - localIdentifier: b8dfd97d05f8e90cf7972d4f5d11aa6f - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: amount_of_top_customers - type: metric - computeRatio: false - filters: [] - localIdentifier: 4139b3859d1bd4272480debf80d356ba - - definition: - measure: - item: - identifier: - id: total_revenue-no_filters - type: metric - computeRatio: false - filters: [] - localIdentifier: eddb24369ee4328eb3bbebe78d45ad2d - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - b8dfd97d05f8e90cf7972d4f5d11aa6f - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '810' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0397cae4-97ac-4c8e-a31c-80e13a03ecae - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 4139b3859d1bd4272480debf80d356ba - format: '#,##0' - name: '# of Top Customers' - - localIdentifier: eddb24369ee4328eb3bbebe78d45ad2d - format: $#,##0 - name: Total Revenue (No Filters) - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: b8dfd97d05f8e90cf7972d4f5d11aa6f - label: - id: product_name - type: label - labelName: Product name - attribute: - id: product_name - type: attribute - attributeName: Product name - granularity: null - primaryLabel: - id: product_name - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 693663b5b076fc4e974bca272cf591c2ba17855c:f0b0337ceccba73e40f422f1503443d52f913a108764b7a3405b55c42ecf5c6b - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28product_name%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1553' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Product name - description: Product name - tags: - - Products - areRelationsValid: true - sourceColumn: product_name - sourceColumnDataType: STRING - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/product_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: product_name - type: label - type: attribute - included: - - attributes: - title: Product name - description: Product name - tags: - - Products - primary: true - sourceColumn: product_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: product_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/product_name - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27product_name%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27product_name%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/693663b5b076fc4e974bca272cf591c2ba17855c%3Af0b0337ceccba73e40f422f1503443d52f913a108764b7a3405b55c42ecf5c6b?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '208' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: [] - - headerGroups: - - headers: [] - grandTotals: [] - paging: - count: - - 0 - - 0 - offset: - - 0 - - 0 - total: - - 0 - - 0 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/filtered_empty_df.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/filtered_empty_df.yaml deleted file mode 100644 index bcf06d236..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/filtered_empty_df.yaml +++ /dev/null @@ -1,142 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: - - relativeDateFilter: - dataset: - identifier: - id: date - type: dataset - from: 1 - granularity: YEAR - to: 2 - measures: - - definition: - measure: - item: - identifier: - id: revenue - type: metric - computeRatio: false - filters: [] - localIdentifier: m_revenue - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '307' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 1cc989fa-9b61-46e2-90c7-9183ce2b7f31 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: m_revenue - format: $#,##0 - name: Revenue - localIdentifier: dim_0 - links: - executionResult: 4d9c6dd2995b38d668d4f11b9cca663331a47704:796f75c652d207c64e906a2461b57cc1f1aeda041f763f626ec3a98569ad9234 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4d9c6dd2995b38d668d4f11b9cca663331a47704%3A796f75c652d207c64e906a2461b57cc1f1aeda041f763f626ec3a98569ad9234?offset=0&limit=1 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '168' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: [] - grandTotals: [] - paging: - count: - - 0 - offset: - - 0 - total: - - 0 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml deleted file mode 100644 index 06b08e2b5..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml +++ /dev/null @@ -1,491 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: state - type: label - localIdentifier: 263d7484f3c864cb11638430ee3f26af - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: - - positiveAttributeFilter: - in: - values: - - Northeast - label: - identifier: - id: region - type: label - - comparisonMeasureValueFilter: - measure: - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - operator: GREATER_THAN - value: 50.0 - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 263d7484f3c864cb11638430ee3f26af - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1373' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 707bcd4c-3a61-4a0c-b3b5-2cbb885e3bb2 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 263d7484f3c864cb11638430ee3f26af - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: f4c795b8678ef0010cebba54e4dbf950b735c79a:1b6eb925643dd9e18cf359f37768444048a7753f7bc735f18093b8b30301f5b7 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28state%2Cregion%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4011' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - areRelationsValid: true - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - meta: - origin: - originId: demo - originType: NATIVE - relationships: - defaultView: - data: - id: state - type: label - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: state - type: label - - id: geo__state__location - type: label - type: attribute - included: - - attributes: - title: Location - description: Location - tags: - - Customers - primary: false - sourceColumn: geo__state__location - sourceColumnDataType: STRING - valueType: GEO - isNullable: true - id: geo__state__location - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location - type: label - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: State - description: State - tags: - - Customers - primary: true - sourceColumn: state - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27state%27%2C%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27state%27%2C%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f4c795b8678ef0010cebba54e4dbf950b735c79a%3A1b6eb925643dd9e18cf359f37768444048a7753f7bc735f18093b8b30301f5b7?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1042' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 6162.98 - - 6433.78 - - 3995.11 - - - 121 - - 58 - - 51 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - headers: - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - grandTotals: [] - paging: - count: - - 2 - - 3 - offset: - - 0 - - 0 - total: - - 2 - - 3 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml deleted file mode 100644 index 780b7d659..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml +++ /dev/null @@ -1,403 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1087' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0b33d881-b054-4648-bdba-955200663548 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: cf58bd7352f823b321260bd46a73c809e4aa83b5:c7b0391bbc9717ffd5f122204b97e970431dff7501682f37066406d715a3cd98 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cf58bd7352f823b321260bd46a73c809e4aa83b5%3Ac7b0391bbc9717ffd5f122204b97e970431dff7501682f37066406d715a3cd98?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '952' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 20738.15 - - 21091.76 - - 16767.98 - - 39827.31 - - - 415 - - 223 - - 200 - - 55 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 2 - - 4 - offset: - - 0 - - 0 - total: - - 2 - - 4 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml deleted file mode 100644 index cf7839109..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml +++ /dev/null @@ -1,499 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1087' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - c76e420d-1bba-4bfa-947e-fc59bd160d3e - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 69181d25fc3c9db68eb482117e727fd0c7faab84:0c15b66c4264d981cb9fd4f6803e07e7cb26d6439f519f2374b80b1704e924b4 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/69181d25fc3c9db68eb482117e727fd0c7faab84%3A0c15b66c4264d981cb9fd4f6803e07e7cb26d6439f519f2374b80b1704e924b4?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '3053' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 20738.15 - - 21091.76 - - 16767.98 - - 39827.31 - - 12033.9 - - 12242.87 - - 6605.08 - - 25828.98 - - 45935.65 - - 42605.53 - - 34629.04 - - 105222.17 - - 18.7 - - 26502.68 - - 26111.41 - - 18323.65 - - 61573.48 - - - 415 - - 223 - - 200 - - 55 - - 242 - - 122 - - 94 - - 24 - - 902 - - 500 - - 436 - - 122 - - 1 - - 526 - - 291 - - 218 - - 76 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 2 - - 17 - offset: - - 0 - - 0 - total: - - 2 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml deleted file mode 100644 index f08bc6734..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml +++ /dev/null @@ -1,2447 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: state - type: label - localIdentifier: 263d7484f3c864cb11638430ee3f26af - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 263d7484f3c864cb11638430ee3f26af - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1373' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 4b1a0e69-6286-459d-8c8f-aeac33ab0eb1 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 263d7484f3c864cb11638430ee3f26af - label: - id: state - type: label - labelName: State - attribute: - id: state - type: attribute - attributeName: State - granularity: null - primaryLabel: - id: state - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 7201eccd2ddaebb1cd6fbcafdf10e8eb88c90e8c:ac42c13ac6bd04f8c1d4c35a18829d1a47e370eefb1eae257a68669347358b88 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28state%2Cregion%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '4011' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - - attributes: - title: State - description: State - tags: - - Customers - areRelationsValid: true - sourceColumn: state - sourceColumnDataType: STRING - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - meta: - origin: - originId: demo - originType: NATIVE - relationships: - defaultView: - data: - id: state - type: label - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: state - type: label - - id: geo__state__location - type: label - type: attribute - included: - - attributes: - title: Location - description: Location - tags: - - Customers - primary: false - sourceColumn: geo__state__location - sourceColumnDataType: STRING - valueType: GEO - isNullable: true - id: geo__state__location - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/geo__state__location - type: label - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: State - description: State - tags: - - Customers - primary: true - sourceColumn: state - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: state - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/state - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27state%27%2C%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27state%27%2C%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7201eccd2ddaebb1cd6fbcafdf10e8eb88c90e8c%3Aac42c13ac6bd04f8c1d4c35a18829d1a47e370eefb1eae257a68669347358b88?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '43476' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - 2725.93 - - 2380.37 - - 2158.09 - - 3676.86 - - 738.82 - - 422.57 - - 454.73 - - 3384.84 - - 13561.15 - - 13729.96 - - 9700.71 - - 30393.45 - - 1514.89 - - 2325.39 - - 1366.28 - - 5663.31 - - 1014.93 - - 1048.14 - - 594.45 - - 538.99 - - 717.46 - - 906.16 - - 556.68 - - 1355.06 - - 3019.08 - - 3945.61 - - 3554.04 - - 7595.78 - - 10448.66 - - 10548.47 - - 6688.79 - - 25807.35 - - 2601.99 - - 2152.51 - - 1294.96 - - 5985.75 - - 893.14 - - 758.13 - - 396.08 - - 3426.72 - - 454.71 - - 383.62 - - 178.1 - - 3384.09 - - 2535.21 - - 2325.5 - - 1667.22 - - 3205.41 - - 1190.44 - - 1178.01 - - 286.41 - - 3939.72 - - 2263.12 - - 2474.87 - - 1491.35 - - 3542.07 - - 882.27 - - 674.41 - - 864.05 - - 2349.06 - - 1671.49 - - 1153.3 - - 311.97 - - 446.18 - - 1368.62 - - 1943.0 - - 1749.62 - - 2185.98 - - 1952.49 - - 1226.85 - - 2208.04 - - 6919.63 - - 1055.56 - - 1729.45 - - 418.92 - - 1624.52 - - 1104.14 - - 1767.83 - - 2663.57 - - 5617.86 - - 2369.61 - - 2826.18 - - 1311.02 - - 3157.96 - - 646.74 - - 790.98 - - 174.34 - - 2834.07 - - 2541.12 - - 1961.18 - - 2653.67 - - 3763.37 - - 701.11 - - 596.79 - - 373.65 - - 742.46 - - 770.11 - - 535.43 - - 666.19 - - 969.9 - - 893.17 - - 172.97 - - 360.16 - - 161.73 - - 1129.66 - - 725.32 - - 356.46 - - 231.84 - - 523.96 - - 540.36 - - 440.93 - - 6162.98 - - 6433.78 - - 3995.11 - - 13727.01 - - 2176.17 - - 1686.28 - - 1704.0 - - 4879.18 - - 102.03 - - 60.78 - - 13.9 - - 4467.47 - - 4133.16 - - 3377.52 - - 7939.25 - - 1048.43 - - 876.39 - - 858.2 - - 6328.89 - - 1575.07 - - 1173.63 - - 801.92 - - 2074.55 - - 2310.61 - - 2306.18 - - 1078.41 - - 9706.62 - - 18.7 - - 1259.77 - - 541.59 - - 612.65 - - 1184.6 - - 393.47 - - 281.19 - - 218.89 - - 1995.05 - - 1291.99 - - 616.68 - - 1886.52 - - 11279.19 - - 10307.9 - - 8293.87 - - 22670.23 - - 1394.01 - - 1429.29 - - 835.05 - - 6042.93 - - 3617.53 - - 2863.09 - - 3446.67 - - 7397.6 - - 1225.73 - - 1010.03 - - 973.49 - - 4246.86 - - 681.94 - - 750.01 - - 1176.32 - - 523.09 - - 2146.81 - - 2638.54 - - 1684.95 - - 5646.42 - - - 19 - - 14 - - 12 - - 3 - - 21 - - 11 - - 7 - - 3 - - 60 - - 35 - - 25 - - 5 - - 15 - - 5 - - 9 - - 3 - - 269 - - 146 - - 118 - - 41 - - 37 - - 20 - - 13 - - 8 - - 22 - - 15 - - 9 - - 1 - - 14 - - 7 - - 5 - - 2 - - 67 - - 49 - - 41 - - 7 - - 199 - - 109 - - 86 - - 30 - - 40 - - 25 - - 15 - - 4 - - 17 - - 14 - - 6 - - 4 - - 4 - - 5 - - 2 - - 2 - - 51 - - 26 - - 24 - - 3 - - 24 - - 14 - - 9 - - 6 - - 47 - - 27 - - 22 - - 8 - - 23 - - 9 - - 12 - - 3 - - 35 - - 18 - - 9 - - 1 - - 33 - - 23 - - 19 - - 4 - - 37 - - 13 - - 17 - - 6 - - 24 - - 15 - - 6 - - 1 - - 26 - - 18 - - 19 - - 5 - - 46 - - 31 - - 19 - - 4 - - 8 - - 3 - - 3 - - 3 - - 56 - - 18 - - 25 - - 5 - - 16 - - 6 - - 4 - - 13 - - 9 - - 8 - - 3 - - 13 - - 7 - - 3 - - 6 - - 5 - - 20 - - 9 - - 4 - - 1 - - 13 - - 7 - - 8 - - 121 - - 58 - - 51 - - 11 - - 39 - - 18 - - 20 - - 7 - - 2 - - 1 - - 1 - - 75 - - 44 - - 40 - - 9 - - 24 - - 11 - - 10 - - 5 - - 21 - - 9 - - 15 - - 4 - - 49 - - 25 - - 19 - - 10 - - 1 - - 26 - - 11 - - 9 - - 2 - - 7 - - 3 - - 1 - - 35 - - 17 - - 8 - - 3 - - 220 - - 132 - - 123 - - 28 - - 25 - - 16 - - 11 - - 4 - - 75 - - 37 - - 39 - - 12 - - 30 - - 15 - - 6 - - 5 - - 16 - - 8 - - 11 - - 2 - - 45 - - 23 - - 20 - - 9 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alabama - primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arizona - primaryLabelValue: Arizona - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: Arkansas - primaryLabelValue: Arkansas - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: California - primaryLabelValue: California - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Colorado - primaryLabelValue: Colorado - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Connecticut - primaryLabelValue: Connecticut - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: Delaware - primaryLabelValue: Delaware - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: District of Columbia - primaryLabelValue: District of Columbia - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Florida - primaryLabelValue: Florida - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Georgia - primaryLabelValue: Georgia - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Hawaii - primaryLabelValue: Hawaii - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Idaho - primaryLabelValue: Idaho - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Illinois - primaryLabelValue: Illinois - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Indiana - primaryLabelValue: Indiana - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Iowa - primaryLabelValue: Iowa - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kansas - primaryLabelValue: Kansas - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Kentucky - primaryLabelValue: Kentucky - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Louisiana - primaryLabelValue: Louisiana - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Maryland - primaryLabelValue: Maryland - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Massachusetts - primaryLabelValue: Massachusetts - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Michigan - primaryLabelValue: Michigan - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Minnesota - primaryLabelValue: Minnesota - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Mississippi - primaryLabelValue: Mississippi - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Missouri - primaryLabelValue: Missouri - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Montana - primaryLabelValue: Montana - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nebraska - primaryLabelValue: Nebraska - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: Nevada - primaryLabelValue: Nevada - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Hampshire - primaryLabelValue: New Hampshire - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Jersey - primaryLabelValue: New Jersey - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New Mexico - primaryLabelValue: New Mexico - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: New York - primaryLabelValue: New York - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Carolina - primaryLabelValue: North Carolina - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: North Dakota - primaryLabelValue: North Dakota - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Ohio - primaryLabelValue: Ohio - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oklahoma - primaryLabelValue: Oklahoma - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Oregon - primaryLabelValue: Oregon - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Pennsylvania - primaryLabelValue: Pennsylvania - - attributeHeader: - labelValue: Rhode Island - primaryLabelValue: Rhode Island - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Carolina - primaryLabelValue: South Carolina - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: South Dakota - primaryLabelValue: South Dakota - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Tennessee - primaryLabelValue: Tennessee - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Texas - primaryLabelValue: Texas - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Utah - primaryLabelValue: Utah - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Virginia - primaryLabelValue: Virginia - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: Washington - primaryLabelValue: Washington - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: West Virginia - primaryLabelValue: West Virginia - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - attributeHeader: - labelValue: Wisconsin - primaryLabelValue: Wisconsin - - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 2 - - 182 - offset: - - 0 - - 0 - total: - - 2 - - 182 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml deleted file mode 100644 index c7307578f..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml +++ /dev/null @@ -1,297 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 118013bb-97a8-4eb9-a8bc-4688e9ae46d6 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 9bbc985fdb099c1eabc29187e588908fe4fb9b49:bddeaaca0a3264eab8d91b53c578f7576b777372f047b99ca626ed307f73e238 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9bbc985fdb099c1eabc29187e588908fe4fb9b49%3Abddeaaca0a3264eab8d91b53c578f7576b777372f047b99ca626ed307f73e238?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '370' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 98425.2 - - - 607 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - grandTotals: [] - paging: - count: - - 2 - - 1 - offset: - - 0 - - 0 - total: - - 2 - - 1 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml deleted file mode 100644 index 4d49ebefb..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml +++ /dev/null @@ -1,152 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '428' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 90baf11f-beb0-4071-bff9-3c34ce92a545 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - links: - executionResult: 3b0883f41d61487e9ece8ec61d291d54ce5ba75d:95e006dd6462e87df2de67fecea5e3181b6933a06f400b089bc55cea7e5f0222 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3b0883f41d61487e9ece8ec61d291d54ce5ba75d%3A95e006dd6462e87df2de67fecea5e3181b6933a06f400b089bc55cea7e5f0222?offset=0&limit=2 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '255' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 516058.34 - - 3016 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - grandTotals: [] - paging: - count: - - 2 - offset: - - 0 - total: - - 2 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml deleted file mode 100644 index acf4067b0..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml +++ /dev/null @@ -1,309 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: order_amount - type: metric - computeRatio: false - filters: [] - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - - definition: - measure: - item: - identifier: - id: amount_of_orders - type: metric - computeRatio: false - filters: [] - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '759' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - b840a5b0-9f37-43e6-ab56-f4d1ec84300b - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 1a0aecdfcb500f7767579f45477cbdb3 - format: $#,##0 - name: Order Amount - - localIdentifier: 5f5d69477a25411cd33be7820a9c8e8e - format: '#,##0' - name: '# of Orders' - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 33d28247c5cadadea8f34ae4f987a69ec7d567e6:7c69b123eec9bf5fd7853a16856805936d1aa9f67521148e565ab2dfc37a932e - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/33d28247c5cadadea8f34ae4f987a69ec7d567e6%3A7c69b123eec9bf5fd7853a16856805936d1aa9f67521148e565ab2dfc37a932e?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '713' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 98425.2 - - 56710.83 - - 228392.39 - - 18.7 - - 132511.22 - - - 607 - - 327 - - 1313 - - 1 - - 768 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 2 - - 5 - offset: - - 0 - - 0 - total: - - 2 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml deleted file mode 100644 index 53d345462..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml +++ /dev/null @@ -1,406 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - - positiveAttributeFilter: - in: - values: - - Clothing - label: - identifier: - id: products.category - type: label - - comparisonMeasureValueFilter: - measure: - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - operator: GREATER_THAN - value: 100.0 - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - c1240b6ba5cdafa4dd2ef1c728f0cffa - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1009' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 080378a0-c57a-4265-afde-89d0cf955c5d - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 8b6e1c68c1ec83e2a3e7c25fe3c7516d43660c9f:190b7d0dd8731ce8068c23cd0855984edc836444d6f7ad933940165e57c5daf7 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28products.category%2Cregion%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/8b6e1c68c1ec83e2a3e7c25fe3c7516d43660c9f%3A190b7d0dd8731ce8068c23cd0855984edc836444d6f7ad933940165e57c5daf7?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '463' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - - 763.0 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - grandTotals: [] - paging: - count: - - 2 - - 1 - offset: - - 0 - - 0 - total: - - 2 - - 1 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml deleted file mode 100644 index 3faa481d0..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml +++ /dev/null @@ -1,467 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '954' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 0d3c83eb-66fb-4d59-9353-2ff03d9ea342 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 023d5d53b8d434369b2c60a3f46bd8b055c7c292:d99341bd09abb242f9c85d9e9c4d5c917f22549d9ecf955072fa2710befaee15 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/023d5d53b8d434369b2c60a3f46bd8b055c7c292%3Ad99341bd09abb242f9c85d9e9c4d5c917f22549d9ecf955072fa2710befaee15?offset=0%2C0&limit=1%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2948' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - 17258.99 - - 13763.98 - - 31943.67 - - 9736.67 - - 8854.81 - - 5799.63 - - 20309.42 - - 37305.83 - - 35912.54 - - 29438.5 - - 90300.47 - - 18.7 - - 21946.82 - - 22013.95 - - 15661.46 - - 53328.41 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 1 - - 17 - offset: - - 0 - - 0 - total: - - 1 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml deleted file mode 100644 index f86dd8232..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml +++ /dev/null @@ -1,307 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '681' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 18df73f8-a817-4952-9dfd-5b3964b42b1f - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 32e55f7d07c28350bbe0c7f5932741327f5569e3:1aa0681b119eb94469081906223b791982b3221c82dfffcbc899cf9f59a44ab2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/32e55f7d07c28350bbe0c7f5932741327f5569e3%3A1aa0681b119eb94469081906223b791982b3221c82dfffcbc899cf9f59a44ab2?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '726' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 79837.24 - - 44700.53 - - 192957.34 - - 18.7 - - 112950.64 - - - 1457.0 - - 805.0 - - 3176.0 - - 1.0 - - 1793.0 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 2 - - 5 - offset: - - 0 - - 0 - total: - - 2 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml b/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml deleted file mode 100644 index fa207fbd5..000000000 --- a/packages/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml +++ /dev/null @@ -1,307 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - definition: - measure: - item: - identifier: - id: quantity - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '681' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 5dc1f3bd-d263-4c19-a0ba-ab5ac4910cc0 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - - localIdentifier: 7b4d783eae87de9dc8b1830a5c901494 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 32e55f7d07c28350bbe0c7f5932741327f5569e3:1aa0681b119eb94469081906223b791982b3221c82dfffcbc899cf9f59a44ab2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/32e55f7d07c28350bbe0c7f5932741327f5569e3%3A1aa0681b119eb94469081906223b791982b3221c82dfffcbc899cf9f59a44ab2?offset=0%2C0&limit=2%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '726' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 79837.24 - - 44700.53 - - 192957.34 - - 18.7 - - 112950.64 - - - 1457.0 - - 805.0 - - 3176.0 - - 1.0 - - 1793.0 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - measureHeader: - measureIndex: 1 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 2 - - 5 - offset: - - 0 - - 0 - total: - - 2 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml deleted file mode 100644 index 6e0af023c..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml +++ /dev/null @@ -1,391 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: - - positiveAttributeFilter: - in: - values: - - Clothing - label: - identifier: - id: products.category - type: label - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '954' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 9bd2e87a-11a6-40d3-98c8-752dcc867199 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: ff23d746db30b87be8afc52a33ed7a1c691ef827:a40bc2bc8dc168a797acc2fcf0488ba9c087045700b7db90b88975a06b36cf68 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/ff23d746db30b87be8afc52a33ed7a1c691ef827%3Aa40bc2bc8dc168a797acc2fcf0488ba9c087045700b7db90b88975a06b36cf68?offset=0%2C0&limit=1%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1051' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - 9736.67 - - 37305.83 - - 18.7 - - 21946.82 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - grandTotals: [] - paging: - count: - - 1 - - 5 - offset: - - 0 - - 0 - total: - - 1 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml deleted file mode 100644 index 820b0789a..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml +++ /dev/null @@ -1,467 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - - c1240b6ba5cdafa4dd2ef1c728f0cffa - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '954' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 2c782d56-7b22-49a8-af6f-420b3f000745 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 023d5d53b8d434369b2c60a3f46bd8b055c7c292:d99341bd09abb242f9c85d9e9c4d5c917f22549d9ecf955072fa2710befaee15 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%2Cproducts.category%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27region%27%2C%27products.category%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/023d5d53b8d434369b2c60a3f46bd8b055c7c292%3Ad99341bd09abb242f9c85d9e9c4d5c917f22549d9ecf955072fa2710befaee15?offset=0%2C0&limit=1%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2948' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 16870.6 - - 17258.99 - - 13763.98 - - 31943.67 - - 9736.67 - - 8854.81 - - 5799.63 - - 20309.42 - - 37305.83 - - 35912.54 - - 29438.5 - - 90300.47 - - 18.7 - - 21946.82 - - 22013.95 - - 15661.46 - - 53328.41 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: West - primaryLabelValue: West - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - grandTotals: [] - paging: - count: - - 1 - - 17 - offset: - - 0 - - 0 - total: - - 1 - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml deleted file mode 100644 index 14c5511a6..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml +++ /dev/null @@ -1,276 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '295' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - cb592156-cfc1-4b96-a3f1-e87124227d53 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - links: - executionResult: 0064d11186aa76b6a3ba289ecd36a860c83ccf0e:9b10cea7336ba4a258116d294439f40193e3eef0ce67889234d6638be906a4b0 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/0064d11186aa76b6a3ba289ecd36a860c83ccf0e%3A9b10cea7336ba4a258116d294439f40193e3eef0ce67889234d6638be906a4b0?offset=0&limit=1 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '213' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 430464.45 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - grandTotals: [] - paging: - count: - - 1 - offset: - - 0 - total: - - 1 - metadata: - dataSourceMessages: [] - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: - - positiveAttributeFilter: - in: - values: - - Unknown - label: - identifier: - id: region - type: label - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '295' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - a8c6cb4f-a12f-4ae4-972a-d7ad2199ef2c - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - links: - executionResult: e69ad6c1f888ca37fd7c6ed066873adf5148a2d2:8f96563bbc98787daa04982298c2b8917683b3ec00090018a0ef5a41fb497397 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e69ad6c1f888ca37fd7c6ed066873adf5148a2d2%3A8f96563bbc98787daa04982298c2b8917683b3ec00090018a0ef5a41fb497397?offset=0&limit=1 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '208' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 18.7 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - grandTotals: [] - paging: - count: - - 1 - offset: - - 0 - total: - - 1 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml deleted file mode 100644 index b90e86a6e..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml +++ /dev/null @@ -1,260 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: [] - resultSpec: - dimensions: - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '505' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 6a0269df-9b2c-4e4f-a59d-380bf1d793ae - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - links: - executionResult: 6d363c8d2c4839e99cb6fbb6aec968bbb5e6a1c7:f9f06c3e4ac60eb23bed110d6fcd452d120e2d173323caf660e2b2d950fd6299 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6d363c8d2c4839e99cb6fbb6aec968bbb5e6a1c7%3Af9f06c3e4ac60eb23bed110d6fcd452d120e2d173323caf660e2b2d950fd6299?offset=0&limit=1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '536' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 5 - offset: - - 0 - total: - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml b/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml deleted file mode 100644 index 831897790..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml +++ /dev/null @@ -1,426 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: [] - resultSpec: - dimensions: - - itemIdentifiers: - - c1240b6ba5cdafa4dd2ef1c728f0cffa - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '833' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 076c98e1-2a2d-47af-93ac-95d3f8d673a4 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - links: - executionResult: 04f3bf2d64cc39ca7b5c384b69f7268956e1cf68:d1490373eab1aaa480390a8061e4e1a95e3edc2b67c12f00a5481805116415c5 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28products.category%2Cregion%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/04f3bf2d64cc39ca7b5c384b69f7268956e1cf68%3Ad1490373eab1aaa480390a8061e4e1a95e3edc2b67c12f00a5481805116415c5?offset=0&limit=1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2727' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Electronics - primaryLabelValue: Electronics - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Home - primaryLabelValue: Home - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - attributeHeader: - labelValue: Outdoor - primaryLabelValue: Outdoor - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 17 - offset: - - 0 - total: - - 17 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml deleted file mode 100644 index 80b0216cb..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml +++ /dev/null @@ -1,136 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: [] - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '295' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - f5dabb5b-771e-4e4c-b5da-f1b4ead14aa4 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - links: - executionResult: 0064d11186aa76b6a3ba289ecd36a860c83ccf0e:9b10cea7336ba4a258116d294439f40193e3eef0ce67889234d6638be906a4b0 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/0064d11186aa76b6a3ba289ecd36a860c83ccf0e%3A9b10cea7336ba4a258116d294439f40193e3eef0ce67889234d6638be906a4b0?offset=0&limit=1 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '213' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - 430464.45 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - grandTotals: [] - paging: - count: - - 1 - offset: - - 0 - total: - - 1 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml b/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml deleted file mode 100644 index 5228481ab..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml +++ /dev/null @@ -1,289 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '626' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 839fbbdd-58a2-410c-af59-eab34958a042 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 6223b85178815264a0989a3256955db64f6a4cc1:1e6b926d89279587608d32e54880b2cd88e667dcce02912609cc65edfcf650f4 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6223b85178815264a0989a3256955db64f6a4cc1%3A1e6b926d89279587608d32e54880b2cd88e667dcce02912609cc65edfcf650f4?offset=0%2C0&limit=1%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '656' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 79837.24 - - 44700.53 - - 192957.34 - - 18.7 - - 112950.64 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 1 - - 5 - offset: - - 0 - - 0 - total: - - 1 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml deleted file mode 100644 index 5c3b6bed7..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml +++ /dev/null @@ -1,346 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: products.category - type: label - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: - - positiveAttributeFilter: - in: - values: - - Midwest - label: - identifier: - id: region - type: label - - positiveAttributeFilter: - in: - values: - - Clothing - label: - identifier: - id: products.category - type: label - measures: [] - resultSpec: - dimensions: - - itemIdentifiers: - - c1240b6ba5cdafa4dd2ef1c728f0cffa - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '833' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 5ea92b15-2cdb-4cf9-8102-f6ffdb26a1a3 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: c1240b6ba5cdafa4dd2ef1c728f0cffa - label: - id: products.category - type: label - labelName: Category - attribute: - id: products.category - type: attribute - attributeName: Category - granularity: null - primaryLabel: - id: products.category - type: label - valueType: TEXT - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - links: - executionResult: eb98e3fd16a281188ccf118559fa0125e41ebf00:941b34721648b7b6799116f7d17a33d42304e2eec254a894411f4f90ebdeeac2 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28products.category%2Cregion%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '2761' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Category - description: Category - tags: - - Products - areRelationsValid: true - sourceColumn: category - sourceColumnDataType: STRING - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/products.category - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: products - type: dataset - labels: - data: - - id: products.category - type: label - type: attribute - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - - attributes: - title: Category - description: Category - tags: - - Products - primary: true - sourceColumn: category - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: products.category - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/products.category - type: label - - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - dataSourceTablePath: - - demo - - products - type: NORMAL - id: products - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - type: dataset - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28%27products.category%27%2C%27region%27%29&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/eb98e3fd16a281188ccf118559fa0125e41ebf00%3A941b34721648b7b6799116f7d17a33d42304e2eec254a894411f4f90ebdeeac2?offset=0&limit=1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '333' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Clothing - primaryLabelValue: Clothing - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - grandTotals: [] - paging: - count: - - 1 - offset: - - 0 - total: - - 1 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml deleted file mode 100644 index 48a267be1..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml +++ /dev/null @@ -1,260 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: [] - resultSpec: - dimensions: - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_0 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '505' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - 479c8893-48a3-4252-810c-6f21b8a3cb95 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_0 - links: - executionResult: 6d363c8d2c4839e99cb6fbb6aec968bbb5e6a1c7:f9f06c3e4ac60eb23bed110d6fcd452d120e2d173323caf660e2b2d950fd6299 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6d363c8d2c4839e99cb6fbb6aec968bbb5e6a1c7%3Af9f06c3e4ac60eb23bed110d6fcd452d120e2d173323caf660e2b2d950fd6299?offset=0&limit=1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '536' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: [] - dimensionHeaders: - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 5 - offset: - - 0 - total: - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml b/packages/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml deleted file mode 100644 index 865a2479f..000000000 --- a/packages/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml +++ /dev/null @@ -1,289 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute - body: - execution: - attributes: - - label: - identifier: - id: region - type: label - localIdentifier: 2660733dfc018f739b0d142f19af7126 - filters: [] - measures: - - definition: - measure: - item: - identifier: - id: price - type: fact - aggregation: SUM - computeRatio: false - filters: [] - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - resultSpec: - dimensions: - - itemIdentifiers: - - measureGroup - localIdentifier: dim_0 - - itemIdentifiers: - - 2660733dfc018f739b0d142f19af7126 - localIdentifier: dim_1 - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '626' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-Gdc-Cancel-Token: - - d27107a7-9600-4ff5-9cc4-ff6db9a77785 - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 - localIdentifier: dim_0 - - headers: - - attributeHeader: - localIdentifier: 2660733dfc018f739b0d142f19af7126 - label: - id: region - type: label - labelName: Region - attribute: - id: region - type: attribute - attributeName: Region - granularity: null - primaryLabel: - id: region - type: label - valueType: TEXT - localIdentifier: dim_1 - links: - executionResult: 6223b85178815264a0989a3256955db64f6a4cc1:1e6b926d89279587608d32e54880b2cd88e667dcce02912609cc65edfcf650f4 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6223b85178815264a0989a3256955db64f6a4cc1%3A1e6b926d89279587608d32e54880b2cd88e667dcce02912609cc65edfcf650f4?offset=0%2C0&limit=1%2C1000 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '656' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - - 79837.24 - - 44700.53 - - 192957.34 - - 18.7 - - 112950.64 - dimensionHeaders: - - headerGroups: - - headers: - - measureHeader: - measureIndex: 0 - - headerGroups: - - headers: - - attributeHeader: - labelValue: Midwest - primaryLabelValue: Midwest - - attributeHeader: - labelValue: Northeast - primaryLabelValue: Northeast - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: Unknown - primaryLabelValue: Unknown - - attributeHeader: - labelValue: West - primaryLabelValue: West - grandTotals: [] - paging: - count: - - 1 - - 5 - offset: - - 0 - - 0 - total: - - 1 - - 5 - metadata: - dataSourceMessages: [] diff --git a/packages/gooddata-pandas/tests/utils/fixtures/test_get_catalog_attributes_for_extract.yaml b/packages/gooddata-pandas/tests/utils/fixtures/test_get_catalog_attributes_for_extract.yaml deleted file mode 100644 index 768a40002..000000000 --- a/packages/gooddata-pandas/tests/utils/fixtures/test_get_catalog_attributes_for_extract.yaml +++ /dev/null @@ -1,212 +0,0 @@ -# (C) 2026 GoodData Corporation -version: 1 -interactions: - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28campaign_name%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1577' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - areRelationsValid: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/campaign_name - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: campaigns - type: dataset - labels: - data: - - id: campaign_name - type: label - type: attribute - included: - - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - dataSourceTablePath: - - demo - - campaigns - type: NORMAL - id: campaigns - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - type: dataset - - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns - primary: true - sourceColumn: campaign_name - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: campaign_name - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/campaign_name - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27campaign_name%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27campaign_name%27&page=1&size=500 - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3Din%3D%28region%29&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '1486' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' - body: - string: - data: - - attributes: - title: Region - description: Region - tags: - - Customers - areRelationsValid: true - sourceColumn: region - sourceColumnDataType: STRING - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/region - meta: - origin: - originId: demo - originType: NATIVE - relationships: - dataset: - data: - id: customers - type: dataset - labels: - data: - - id: region - type: label - type: attribute - included: - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute - dataSourceTableId: demo-test-ds:customers - dataSourceTablePath: - - demo - - customers - type: NORMAL - id: customers - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers - type: dataset - - attributes: - title: Region - description: Region - tags: - - Customers - primary: true - sourceColumn: region - sourceColumnDataType: STRING - valueType: TEXT - isNullable: true - id: region - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/labels/region - type: label - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=0&size=500 - next: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&filter=labels.id%3D%3D%27region%27&page=1&size=500 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml index a2f4653d7..7c2766397 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e50fab819fb41b3eb76adfb04f7 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,36 +37,31 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 44090248ebeaaf0e0abcad0c0042d810 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test - schema: demo - type: BIGQUERY - token: eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxcblBSSVZBVEVfS0VZXFxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxcbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0= parameters: - name: projectId value: abc + schema: demo + token: eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxcblBSSVZBVEVfS0VZXFxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxcbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0= + type: BIGQUERY id: test type: dataSource headers: @@ -79,15 +75,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: TOKEN + decodedParameters: + - name: clientEmail + value: SERVICE_ACCOUNT_EMAIL + - name: keyId + value: KEY_ID + - name: projectId + value: PROJECT_ID + name: Test + parameters: + - name: projectId + value: abc + schema: demo + type: BIGQUERY + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '448' Content-Type: @@ -100,23 +115,39 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + response: body: string: data: attributes: - parameters: - - name: projectId - value: abc + authenticationType: TOKEN decodedParameters: - name: clientEmail value: SERVICE_ACCOUNT_EMAIL @@ -124,36 +155,19 @@ interactions: value: KEY_ID - name: projectId value: PROJECT_ID - authenticationType: TOKEN name: Test - type: BIGQUERY + parameters: + - name: projectId + value: abc schema: demo + type: BIGQUERY id: test type: dataSource links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '448' Content-Type: @@ -166,41 +180,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - parameters: - - name: projectId - value: abc - decodedParameters: - - name: clientEmail - value: SERVICE_ACCOUNT_EMAIL - - name: keyId - value: KEY_ID - - name: projectId - value: PROJECT_ID - authenticationType: TOKEN - name: Test - type: BIGQUERY - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -209,15 +203,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -228,15 +221,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_cache_strategy.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_cache_strategy.yaml index cb870095b..db416175e 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_cache_strategy.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_cache_strategy.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds body: null headers: Accept: @@ -14,15 +11,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '435' Content-Type: @@ -36,34 +45,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PATCH - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds body: data: attributes: @@ -83,15 +79,28 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + cacheStrategy: NEVER + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha:5432/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '464' Content-Type: @@ -104,35 +113,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha:5432/tiger_tests?sslmode=prefer - username: postgres - cacheStrategy: NEVER - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds body: null headers: Accept: @@ -143,15 +138,28 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + cacheStrategy: NEVER + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha:5432/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '464' Content-Type: @@ -164,43 +172,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha:5432/tiger_tests?sslmode=prefer - username: postgres - cacheStrategy: NEVER - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -210,8 +202,10 @@ interactions: id: demoGroup type: userGroup name: USE - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -221,15 +215,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -238,15 +231,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml index 950867826..3816b7d71 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_data_sources_list.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + type: dataSource + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '671' Content-Type: @@ -36,31 +48,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml index 23078119a..e80dd69ae 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_delete_declarative_data_sources.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: [] headers: @@ -15,15 +12,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -33,21 +29,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -58,15 +54,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '18' Content-Type: @@ -79,30 +75,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -112,8 +105,10 @@ interactions: id: demoGroup type: userGroup name: USE - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -123,15 +118,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -140,15 +134,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml index 18e86eb89..e59603921 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -442,41 +407,69 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1196' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel body: - separator: __ - wdfPrefix: wdf pdm: tables: - columns: - dataType: NUMERIC - name: budget - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: budget - dataType: STRING - name: campaign_channel_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_channel_id - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: STRING - name: category - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: spend isPrimaryKey: false + name: category + - dataType: NUMERIC isNullable: true - - dataType: STRING - name: type isPrimaryKey: false + name: spend + - dataType: STRING isNullable: true + isPrimaryKey: false + name: type id: campaign_channels path: - demo @@ -484,13 +477,13 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_id - dataType: STRING - name: campaign_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: campaign_name id: campaigns path: - demo @@ -498,25 +491,25 @@ interactions: type: TABLE - columns: - dataType: INT - name: customer_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: customer_id - dataType: STRING - name: customer_name - isPrimaryKey: false isNullable: true - - dataType: STRING - name: geo__state__location isPrimaryKey: false - isNullable: true + name: customer_name - dataType: STRING - name: region - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: geo__state__location - dataType: STRING - name: state + isNullable: true isPrimaryKey: false + name: region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: state id: customers path: - demo @@ -524,55 +517,55 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: INT - name: customer_id + isNullable: true isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - isNullable: true + referencedTableId: customers - dataType: DATE - name: date - isPrimaryKey: false isNullable: true - - dataType: STRING - name: order_id isPrimaryKey: false + name: date + - dataType: STRING isNullable: true + isPrimaryKey: false + name: order_id - dataType: STRING - name: order_line_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: order_line_id - dataType: STRING - name: order_status - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: price isPrimaryKey: false + name: order_status + - dataType: NUMERIC isNullable: true + isPrimaryKey: false + name: price - dataType: INT - name: product_id + isNullable: true isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - isNullable: true + referencedTableId: products - dataType: NUMERIC - name: quantity - isPrimaryKey: false isNullable: true - - dataType: STRING - name: wdf__region isPrimaryKey: false - isNullable: true + name: quantity - dataType: STRING - name: wdf__state + isNullable: true isPrimaryKey: false + name: wdf__region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: wdf__state id: order_lines path: - demo @@ -580,24 +573,26 @@ interactions: type: TABLE - columns: - dataType: STRING - name: category - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: category - dataType: INT - name: product_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: product_id - dataType: STRING - name: product_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: product_name id: products path: - demo - products type: TABLE - workspaceId: demo + separator: __ translationPrefix: tr + wdfPrefix: wdf + workspaceId: demo headers: Accept: - application/json @@ -609,40 +604,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1009,3 +973,35 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1075' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model_sql_datasets.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model_sql_datasets.yaml index 3f8d72f59..737d02b04 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model_sql_datasets.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model_sql_datasets.yaml @@ -1,17 +1,10 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel body: - separator: __ - wdfPrefix: wdf pdm: sqls: - - statement: SELECT * FROM order_lines - title: Order lines duplicate sql dataset - columns: + - columns: - dataType: STRING name: order_line_id - dataType: STRING @@ -30,9 +23,9 @@ interactions: name: price - dataType: NUMERIC name: quantity - - statement: SELECT * FROM v_wdf_customers - title: Customers sql dataset with WDF - columns: + statement: SELECT * FROM order_lines + title: Order lines duplicate sql dataset + - columns: - dataType: INT name: customer_id - dataType: STRING @@ -43,34 +36,36 @@ interactions: name: region - dataType: STRING name: wdf__region + statement: SELECT * FROM v_wdf_customers + title: Customers sql dataset with WDF tables: - columns: - dataType: NUMERIC - name: budget - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: budget - dataType: STRING - name: campaign_channel_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_channel_id - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: STRING - name: category - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: spend isPrimaryKey: false + name: category + - dataType: NUMERIC isNullable: true - - dataType: STRING - name: type isPrimaryKey: false + name: spend + - dataType: STRING isNullable: true + isPrimaryKey: false + name: type id: campaign_channels path: - demo @@ -78,13 +73,13 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_id - dataType: STRING - name: campaign_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: campaign_name id: campaigns path: - demo @@ -92,25 +87,25 @@ interactions: type: TABLE - columns: - dataType: INT - name: customer_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: customer_id - dataType: STRING - name: customer_name - isPrimaryKey: false isNullable: true - - dataType: STRING - name: geo__state__location isPrimaryKey: false - isNullable: true + name: customer_name - dataType: STRING - name: region - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: geo__state__location - dataType: STRING - name: state + isNullable: true isPrimaryKey: false + name: region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: state id: customers path: - demo @@ -118,55 +113,55 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: INT - name: customer_id + isNullable: true isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - isNullable: true + referencedTableId: customers - dataType: DATE - name: date - isPrimaryKey: false isNullable: true - - dataType: STRING - name: order_id isPrimaryKey: false + name: date + - dataType: STRING isNullable: true + isPrimaryKey: false + name: order_id - dataType: STRING - name: order_line_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: order_line_id - dataType: STRING - name: order_status - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: price isPrimaryKey: false + name: order_status + - dataType: NUMERIC isNullable: true + isPrimaryKey: false + name: price - dataType: INT - name: product_id + isNullable: true isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - isNullable: true + referencedTableId: products - dataType: NUMERIC - name: quantity - isPrimaryKey: false isNullable: true - - dataType: STRING - name: wdf__region isPrimaryKey: false - isNullable: true + name: quantity - dataType: STRING - name: wdf__state + isNullable: true isPrimaryKey: false + name: wdf__region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: wdf__state id: order_lines path: - demo @@ -174,22 +169,24 @@ interactions: type: TABLE - columns: - dataType: STRING - name: category - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: category - dataType: INT - name: product_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: product_id - dataType: STRING - name: product_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: product_name id: products path: - demo - products type: TABLE + separator: __ + wdfPrefix: wdf headers: Accept: - application/json @@ -201,41 +198,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -729,3 +694,36 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1374' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml index 3960a76cd..a3dba31f3 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: [] headers: @@ -15,15 +12,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -33,21 +29,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -56,15 +52,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -79,21 +74,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -102,15 +97,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -123,62 +138,38 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-bigquery-ds + - decodedParameters: + - name: clientEmail + value: fake email + 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 permissions: [] + schema: demo token: eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuUFJJVkFURV9LRVlcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0= + type: BIGQUERY - id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgres:5432/tiger?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -188,12 +179,14 @@ interactions: id: demoGroup type: userGroup name: USE - password: secret - - id: demo-test-ds-databricks-client-secret - name: demo-test-ds-databricks-client-secret schema: demo - type: DATABRICKS - url: jdbc:databricks://dbc-1234-abc.cloud.databricks.com:443;httpPath=/sql/1.0/warehouses/9876fdsa; + type: POSTGRESQL + url: jdbc:postgresql://postgres:5432/tiger?sslmode=prefer + username: postgres + - clientId: client-id + clientSecret: databricks-client-secret + id: demo-test-ds-databricks-client-secret + name: demo-test-ds-databricks-client-secret parameters: - name: catalog value: demo @@ -206,13 +199,11 @@ interactions: id: demoGroup type: userGroup name: USE - clientId: client-id - clientSecret: databricks-client-secret - - id: demo-test-ds-databricks-token - name: demo-test-ds-databricks-token schema: demo type: DATABRICKS url: jdbc:databricks://dbc-1234-abc.cloud.databricks.com:443;httpPath=/sql/1.0/warehouses/9876fdsa; + - id: demo-test-ds-databricks-token + name: demo-test-ds-databricks-token parameters: - name: catalog value: demo @@ -225,13 +216,16 @@ interactions: id: demoGroup type: userGroup name: USE + schema: demo token: databricks-token + type: DATABRICKS + url: jdbc:databricks://dbc-1234-abc.cloud.databricks.com:443;httpPath=/sql/1.0/warehouses/9876fdsa; - id: demo-vertica-ds name: demo-vertica-ds + permissions: [] schema: demo type: VERTICA url: jdbc:vertica://localhost:5434/demo - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -241,15 +235,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -258,21 +251,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -283,40 +276,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: dataSources: @@ -395,17 +357,44 @@ interactions: schema: demo type: VERTICA url: jdbc:vertica://localhost:5434/demo + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '548' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgres:5432/tiger?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -415,8 +404,10 @@ interactions: id: demoGroup type: userGroup name: USE - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgres:5432/tiger?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -426,15 +417,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -443,15 +433,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml index 601a25aa8..da9a2697a 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -14,15 +11,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: @@ -36,47 +50,28 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - alternativeDataSourceId: ds-put-abc-id - authenticationType: USERNAME_PASSWORD - 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -86,9 +81,10 @@ interactions: id: demoGroup type: userGroup name: USE - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -98,15 +94,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -115,21 +110,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -140,15 +135,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: @@ -161,47 +173,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - alternativeDataSourceId: ds-put-abc-id - authenticationType: USERNAME_PASSWORD - 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -211,8 +203,10 @@ interactions: id: demoGroup type: userGroup name: USE - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -222,15 +216,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -239,15 +232,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml index e52389d1c..98f30dfab 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -14,15 +11,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: @@ -36,44 +50,26 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - alternativeDataSourceId: ds-put-abc-id - authenticationType: USERNAME_PASSWORD - 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test body: + password: secret + schema: demo type: POSTGRESQL url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - schema: demo - password: secret username: postgres headers: Accept: @@ -86,15 +82,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test response: - status: - code: 200 - message: OK + body: + string: + queryDurationMillis: + createCacheTable: 0 + simpleSelect: 24 + successful: true headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '82' Content-Type: @@ -107,33 +106,28 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - queryDurationMillis: - createCacheTable: 0 - simpleSelect: 12 - successful: true + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -143,9 +137,10 @@ interactions: id: demoGroup type: userGroup name: USE - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -155,15 +150,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -172,21 +166,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -197,15 +191,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: @@ -218,47 +229,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - alternativeDataSourceId: ds-put-abc-id - authenticationType: USERNAME_PASSWORD - 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: dataSources: - - id: demo-test-ds + - alternativeDataSourceId: ds-put-abc-id + id: demo-test-ds name: demo-test-ds - schema: demo - type: POSTGRESQL - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + password: secret permissions: - assignee: id: demo2 @@ -268,8 +259,10 @@ interactions: id: demoGroup type: userGroup name: USE - alternativeDataSourceId: ds-put-abc-id - password: secret + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Accept-Encoding: - br, gzip, deflate @@ -279,15 +272,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -296,15 +288,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml index 815ade76b..4cb6f88ad 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 body: null headers: Accept: @@ -14,51 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: '# of Active Customers' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) createdAt: 2025-08-07 11:45 + title: '# of Active Customers' id: amount_of_active_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers @@ -68,12 +33,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Orders' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) createdAt: 2025-08-07 11:45 + title: '# of Orders' id: amount_of_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_orders @@ -83,13 +48,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Top Customers' areRelationsValid: true content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' createdAt: 2025-08-07 11:45 + title: '# of Top Customers' id: amount_of_top_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers @@ -99,14 +64,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Valid Orders' - description: '' areRelationsValid: true content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) createdAt: 2025-08-07 11:45 + description: '' + title: '# of Valid Orders' id: amount_of_valid_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders @@ -116,12 +81,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Campaign Spend areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/spend}) createdAt: 2025-08-07 11:45 + title: Campaign Spend id: campaign_spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/campaign_spend @@ -131,12 +96,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Order Amount areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) createdAt: 2025-08-07 11:45 + title: Order Amount id: order_amount links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/order_amount @@ -146,12 +111,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} createdAt: 2025-08-07 11:45 + title: '% Revenue' id: percent_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue @@ -161,13 +126,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Customers' areRelationsValid: true 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}" createdAt: 2025-08-07 11:45 + title: '% Revenue from Top 10 Customers' id: percent_revenue_from_top_10_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers @@ -177,13 +142,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Customers' areRelationsValid: true 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}" createdAt: 2025-08-07 11:45 + title: '% Revenue from Top 10% Customers' id: percent_revenue_from_top_10_percent_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers @@ -193,13 +158,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Products' areRelationsValid: true 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}" createdAt: 2025-08-07 11:45 + title: '% Revenue from Top 10% Products' id: percent_revenue_from_top_10_percent_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products @@ -209,13 +174,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Products' areRelationsValid: true 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}" createdAt: 2025-08-07 11:45 + title: '% Revenue from Top 10 Products' id: percent_revenue_from_top_10_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products @@ -225,13 +190,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue in Category' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) createdAt: 2025-08-07 11:45 + title: '% Revenue in Category' id: percent_revenue_in_category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category @@ -241,13 +206,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue per Product' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) createdAt: 2025-08-07 11:45 + title: '% Revenue per Product' id: percent_revenue_per_product links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product @@ -257,14 +222,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue - description: '' areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) createdAt: 2025-08-07 11:45 + description: '' + title: Revenue id: revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue @@ -274,13 +239,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Clothing) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") createdAt: 2025-08-07 11:45 + title: Revenue (Clothing) id: revenue-clothing links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-clothing @@ -290,13 +255,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Electronic) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") createdAt: 2025-08-07 11:45 + title: Revenue (Electronic) id: revenue-electronic links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-electronic @@ -306,13 +271,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Home) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") createdAt: 2025-08-07 11:45 + title: Revenue (Home) id: revenue-home links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-home @@ -322,13 +287,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Outdoor) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") createdAt: 2025-08-07 11:45 + title: Revenue (Outdoor) id: revenue-outdoor links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-outdoor @@ -338,12 +303,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Customer areRelationsValid: true content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) createdAt: 2025-08-07 11:45 + title: Revenue per Customer id: revenue_per_customer links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_customer @@ -353,12 +318,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Dollar Spent areRelationsValid: true content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} createdAt: 2025-08-07 11:45 + title: Revenue per Dollar Spent id: revenue_per_dollar_spent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent @@ -368,12 +333,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10 areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) createdAt: 2025-08-07 11:45 + title: Revenue / Top 10 id: revenue_top_10 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10 @@ -383,12 +348,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10% areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) createdAt: 2025-08-07 11:45 + title: Revenue / Top 10% id: revenue_top_10_percent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent @@ -398,12 +363,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER createdAt: 2025-08-07 11:45 + title: Total Revenue id: total_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue @@ -413,12 +378,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue (No Filters) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER createdAt: 2025-08-07 11:45 + title: Total Revenue (No Filters) id: total_revenue-no_filters links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters @@ -428,11 +393,41 @@ interactions: originType: NATIVE type: metric links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1089' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/execute body: execution: attributes: [] @@ -440,12 +435,12 @@ interactions: measures: - definition: measure: + computeRatio: false + filters: [] item: identifier: id: amount_of_active_customers type: metric - computeRatio: false - filters: [] localIdentifier: amount_of_active_customers resultSpec: dimensions: @@ -463,15 +458,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/execute response: - status: - code: 200 - message: OK + body: + string: + executionResponse: + dimensions: + - headers: + - measureGroupHeaders: + - format: '#,##0' + localIdentifier: amount_of_active_customers + name: '# of Active Customers' + localIdentifier: dim_0 + links: + executionResult: 34b91fa802056e63c5e6e995329aa589eae6289a:6251666c9a602a64d881b86414484f5a7bffb831ec896a3b622e74d699a77a2d headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '337' Content-Type: @@ -484,33 +488,22 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff - X-GDC-CANCEL-TOKEN: - - cc351094-43f7-4004-bde7-2576aaab112c + X-GDC-CANCEL-TOKEN: *id001 X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: amount_of_active_customers - format: '#,##0' - name: '# of Active Customers' - localIdentifier: dim_0 - links: - executionResult: e634429a8a94a8d8cd6515382f18f80ce12964e9:116165a10ca5e19f7e2bd5b45348106f14d72eebe522316b25231881371f5532 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/uploadNotification body: null headers: Accept-Encoding: @@ -521,15 +514,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/uploadNotification response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -538,21 +530,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/execute body: execution: attributes: [] @@ -560,12 +552,12 @@ interactions: measures: - definition: measure: + computeRatio: false + filters: [] item: identifier: id: amount_of_active_customers type: metric - computeRatio: false - filters: [] localIdentifier: amount_of_active_customers resultSpec: dimensions: @@ -583,15 +575,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/execute response: - status: - code: 200 - message: OK + body: + string: + executionResponse: + dimensions: + - headers: + - measureGroupHeaders: + - format: '#,##0' + localIdentifier: amount_of_active_customers + name: '# of Active Customers' + localIdentifier: dim_0 + links: + executionResult: 785cbe593e80f4c231a7b7ddf46fe7fec207adb0:6648a6ede3551e5e3621d8b4430729e9ff16c0a86436288594544882d10d49e2 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '337' Content-Type: @@ -604,27 +605,19 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff - X-GDC-CANCEL-TOKEN: - - 02b25b56-c095-4194-b44a-3b60bfea80d7 + X-GDC-CANCEL-TOKEN: *id001 X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - executionResponse: - dimensions: - - headers: - - measureGroupHeaders: - - localIdentifier: amount_of_active_customers - format: '#,##0' - name: '# of Active Customers' - localIdentifier: dim_0 - links: - executionResult: d84cf434cc6800215a21e7a7e7a068ff39aedb97:db64173e3a46017a3d797d326733ad85612fbf595ff97885d7f96b5549dd4203 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model.yaml index e2719172f..c56c08796 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -442,38 +407,17 @@ interactions: tags: - Date title: Date - - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan - body: - scanTables: true - scanViews: false - separator: __ - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1196' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -481,9 +425,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -492,8 +434,30 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + scanTables: true + scanViews: false + separator: __ + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan + response: body: string: pdm: @@ -645,41 +609,68 @@ interactions: - products type: TABLE warnings: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '413' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel body: - separator: __ - wdfPrefix: wdf pdm: tables: - columns: - dataType: NUMERIC - name: budget - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: budget - dataType: STRING - name: campaign_channel_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_channel_id - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: STRING - name: category - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: spend isPrimaryKey: false + name: category + - dataType: NUMERIC isNullable: true - - dataType: STRING - name: type isPrimaryKey: false + name: spend + - dataType: STRING isNullable: true + isPrimaryKey: false + name: type id: campaign_channels path: - demo @@ -687,13 +678,13 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_id - dataType: STRING - name: campaign_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: campaign_name id: campaigns path: - demo @@ -701,25 +692,25 @@ interactions: type: TABLE - columns: - dataType: INT - name: customer_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: customer_id - dataType: STRING - name: customer_name - isPrimaryKey: false isNullable: true - - dataType: STRING - name: geo__state__location isPrimaryKey: false - isNullable: true + name: customer_name - dataType: STRING - name: region - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: geo__state__location - dataType: STRING - name: state + isNullable: true isPrimaryKey: false + name: region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: state id: customers path: - demo @@ -727,55 +718,55 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: INT - name: customer_id + isNullable: true isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - isNullable: true + referencedTableId: customers - dataType: DATE - name: date - isPrimaryKey: false isNullable: true - - dataType: STRING - name: order_id isPrimaryKey: false + name: date + - dataType: STRING isNullable: true + isPrimaryKey: false + name: order_id - dataType: STRING - name: order_line_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: order_line_id - dataType: STRING - name: order_status - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: price isPrimaryKey: false + name: order_status + - dataType: NUMERIC isNullable: true + isPrimaryKey: false + name: price - dataType: INT - name: product_id + isNullable: true isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - isNullable: true + referencedTableId: products - dataType: NUMERIC - name: quantity - isPrimaryKey: false isNullable: true - - dataType: STRING - name: wdf__region isPrimaryKey: false - isNullable: true + name: quantity - dataType: STRING - name: wdf__state + isNullable: true isPrimaryKey: false + name: wdf__region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: wdf__state id: order_lines path: - demo @@ -783,24 +774,26 @@ interactions: type: TABLE - columns: - dataType: STRING - name: category - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: category - dataType: INT - name: product_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: product_id - dataType: STRING - name: product_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: product_name id: products path: - demo - products type: TABLE - workspaceId: demo + separator: __ translationPrefix: tr + wdfPrefix: wdf + workspaceId: demo headers: Accept: - application/json @@ -812,40 +805,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1212,3 +1174,35 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1075' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model_sql_datasets.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model_sql_datasets.yaml index 551fa0d3b..c66b8704a 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model_sql_datasets.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_pdm_and_generate_logical_model_sql_datasets.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan body: scanTables: true scanViews: false @@ -19,41 +16,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: pdm: @@ -205,17 +170,43 @@ interactions: - products type: TABLE warnings: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '413' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel body: - separator: __ - wdfPrefix: wdf pdm: sqls: - - statement: SELECT * FROM order_lines - title: Order lines duplicate sql dataset - columns: + - columns: - dataType: STRING name: order_line_id - dataType: STRING @@ -234,9 +225,9 @@ interactions: name: price - dataType: NUMERIC name: quantity - - statement: SELECT * FROM v_wdf_customers - title: Customers sql dataset with WDF - columns: + statement: SELECT * FROM order_lines + title: Order lines duplicate sql dataset + - columns: - dataType: INT name: customer_id - dataType: STRING @@ -247,34 +238,36 @@ interactions: name: region - dataType: STRING name: wdf__region + statement: SELECT * FROM v_wdf_customers + title: Customers sql dataset with WDF tables: - columns: - dataType: NUMERIC - name: budget - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: budget - dataType: STRING - name: campaign_channel_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_channel_id - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: STRING - name: category - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: spend isPrimaryKey: false + name: category + - dataType: NUMERIC isNullable: true - - dataType: STRING - name: type isPrimaryKey: false + name: spend + - dataType: STRING isNullable: true + isPrimaryKey: false + name: type id: campaign_channels path: - demo @@ -282,13 +275,13 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: campaign_id - dataType: STRING - name: campaign_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: campaign_name id: campaigns path: - demo @@ -296,25 +289,25 @@ interactions: type: TABLE - columns: - dataType: INT - name: customer_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: customer_id - dataType: STRING - name: customer_name - isPrimaryKey: false isNullable: true - - dataType: STRING - name: geo__state__location isPrimaryKey: false - isNullable: true + name: customer_name - dataType: STRING - name: region - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: geo__state__location - dataType: STRING - name: state + isNullable: true isPrimaryKey: false + name: region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: state id: customers path: - demo @@ -322,55 +315,55 @@ interactions: type: TABLE - columns: - dataType: INT - name: campaign_id + isNullable: true isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - isNullable: true + referencedTableId: campaigns - dataType: INT - name: customer_id + isNullable: true isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - isNullable: true + referencedTableId: customers - dataType: DATE - name: date - isPrimaryKey: false isNullable: true - - dataType: STRING - name: order_id isPrimaryKey: false + name: date + - dataType: STRING isNullable: true + isPrimaryKey: false + name: order_id - dataType: STRING - name: order_line_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: order_line_id - dataType: STRING - name: order_status - isPrimaryKey: false isNullable: true - - dataType: NUMERIC - name: price isPrimaryKey: false + name: order_status + - dataType: NUMERIC isNullable: true + isPrimaryKey: false + name: price - dataType: INT - name: product_id + isNullable: true isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - isNullable: true + referencedTableId: products - dataType: NUMERIC - name: quantity - isPrimaryKey: false isNullable: true - - dataType: STRING - name: wdf__region isPrimaryKey: false - isNullable: true + name: quantity - dataType: STRING - name: wdf__state + isNullable: true isPrimaryKey: false + name: wdf__region + - dataType: STRING isNullable: true + isPrimaryKey: false + name: wdf__state id: order_lines path: - demo @@ -378,23 +371,25 @@ interactions: type: TABLE - columns: - dataType: STRING - name: category - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: category - dataType: INT - name: product_id - isPrimaryKey: true isNullable: false + isPrimaryKey: true + name: product_id - dataType: STRING - name: product_name - isPrimaryKey: false isNullable: true + isPrimaryKey: false + name: product_name id: products path: - demo - products type: TABLE + separator: __ translationPrefix: tr + wdfPrefix: wdf headers: Accept: - application/json @@ -406,40 +401,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -933,3 +897,35 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1374' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_schemata.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_schemata.yaml index 7efe03113..e3536c875 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_schemata.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_scan_schemata.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSchemata body: null headers: Accept: @@ -14,15 +11,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSchemata response: - status: - code: 200 - message: OK + body: + string: + schemaNames: + - demo headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '24' Content-Type: @@ -36,17 +34,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - schemaNames: - - demo + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml index 820f28204..d8d177529 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '428' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: dataSources: @@ -66,33 +34,15 @@ interactions: type: POSTGRESQL url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer username: postgres - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -100,16 +50,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources + response: body: string: dataSources: @@ -130,55 +98,36 @@ interactions: type: POSTGRESQL url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer username: postgres - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '428' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -187,44 +136,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -235,61 +200,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -298,44 +245,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -346,9 +309,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml index c85c53ea1..7c5c3002c 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources body: null headers: Accept: @@ -14,15 +11,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/dataSources response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '428' Content-Type: @@ -36,43 +50,25 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - alternativeDataSourceId: ds-put-abc-id - authenticationType: USERNAME_PASSWORD - 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://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test body: + schema: demo type: POSTGRESQL url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - schema: demo username: postgres headers: Accept: @@ -85,15 +81,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test response: - status: - code: 200 - message: OK + body: + string: + error: 'DB request exception (state=GENERAL_ERROR dataSourceId=null vendorErrorState=08004 + vendorErrorCode=0) org.postgresql.util.PSQLException: The server requested + SCRAM-based authentication, but the password is an empty string.org.postgresql.util.PSQLException: + The server requested SCRAM-based authentication, but the password is an + empty string.' + successful: false headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '373' Content-Type: @@ -106,32 +107,26 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - error: 'DB request exception (state=GENERAL_ERROR dataSourceId=null vendorErrorState=08004 - vendorErrorCode=0) org.postgresql.util.PSQLException: The server requested - SCRAM-based authentication, but the password is an empty string.org.postgresql.util.PSQLException: - The server requested SCRAM-based authentication, but the password is an - empty string.' - successful: false + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test body: + password: secret + schema: demo type: POSTGRESQL url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - schema: demo - password: secret username: postgres headers: Accept: @@ -144,15 +139,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSource/test response: - status: - code: 200 - message: OK + body: + string: + queryDurationMillis: + createCacheTable: 0 + simpleSelect: 11 + successful: true headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '82' Content-Type: @@ -165,19 +163,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - queryDurationMillis: - createCacheTable: 0 - simpleSelect: 11 - successful: true + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model.yaml index 4726d87ed..317f8c00c 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan body: scanTables: true scanViews: false @@ -19,41 +16,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: pdm: @@ -205,9 +170,39 @@ interactions: - products type: TABLE warnings: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '413' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan body: scanTables: false scanViews: true @@ -223,15 +218,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan response: - status: - code: 200 - message: OK + body: + string: + pdm: + tables: [] + warnings: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '35' Content-Type: @@ -244,18 +241,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - pdm: - tables: [] - warnings: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_schemata.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_schemata.yaml index 3aeb56a2a..160691b13 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_schemata.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_schemata.yaml @@ -1,15 +1,12 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan body: scanTables: true scanViews: false - separator: __ schemata: - demo + separator: __ headers: Accept: - application/json @@ -21,41 +18,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: pdm: @@ -207,3 +172,36 @@ interactions: - products type: TABLE warnings: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '413' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_table_prefix.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_table_prefix.yaml index 1eaeeeffb..07177896d 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_table_prefix.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_model_with_table_prefix.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan body: scanTables: true scanViews: false @@ -20,41 +17,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scan response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: pdm: @@ -114,3 +79,36 @@ interactions: - order_lines type: TABLE warnings: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '264' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml index ff3bf49d5..e81dc8a5e 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e500dbb458a2cf78faa7e46d63d headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,35 +37,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: ab644bd972d1f53f8d9fe0298b29e067 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Dremio + password: demopass schema: '' type: DREMIO - username: demouser - password: demopass url: jdbc:dremio:direct=dremio:31010 + username: demouser id: dremio type: dataSource headers: @@ -78,15 +74,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Dremio + schema: '' + type: DREMIO + url: jdbc:dremio:direct=dremio:31010 + username: demouser + id: dremio + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '319' Content-Type: @@ -99,33 +106,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:dremio:direct=dremio:31010 - username: demouser - authenticationType: USERNAME_PASSWORD - name: Dremio - type: DREMIO - schema: '' - id: dremio - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio body: null headers: Accept: @@ -136,15 +131,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Dremio + schema: '' + type: DREMIO + url: jdbc:dremio:direct=dremio:31010 + username: demouser + id: dremio + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '319' Content-Type: @@ -157,33 +163,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:dremio:direct=dremio:31010 - username: demouser - authenticationType: USERNAME_PASSWORD - name: Dremio - type: DREMIO - schema: '' - id: dremio - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio body: null headers: Accept-Encoding: @@ -192,15 +186,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/dremio response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -211,15 +204,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml index 982af06c7..6e6cc41c9 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + type: dataSource + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '671' Content-Type: @@ -36,37 +48,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -77,15 +73,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5015ed14fd2eb524c53eb81a83 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -98,35 +98,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 0f7a4b8de462416994c63b25ac304a4c + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test + password: demopass schema: demo type: POSTGRESQL - username: demouser - password: demopass url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser id: test type: dataSource headers: @@ -140,15 +135,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -161,33 +167,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -198,15 +192,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -219,33 +224,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -256,15 +249,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -277,38 +281,26 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PATCH - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: data: attributes: - name: Test2 alternativeDataSourceId: ds-patch-abc-id + name: Test2 type: POSTGRESQL url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer id: test @@ -324,15 +316,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-patch-abc-id + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '401' Content-Type: @@ -345,34 +349,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-patch-abc-id - name: Test2 - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -383,15 +374,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-patch-abc-id + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '401' Content-Type: @@ -404,34 +407,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-patch-abc-id - name: Test2 - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -440,15 +430,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -459,15 +448,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml index f4d9b3624..5a59c8dd8 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e4e13e92b206122a80b90a9bfde headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,36 +37,31 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 91771d4e564ae5f17c86201e47fdda34 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: + alternativeDataSourceId: ds-abc-id name: Test2 + password: demopass schema: demo type: REDSHIFT - username: demouser - password: demopass url: jdbc:redshift://aws.endpoint:5439/demo?autosave=true - alternativeDataSourceId: ds-abc-id + username: demouser id: test type: dataSource headers: @@ -79,15 +75,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + alternativeDataSourceId: ds-abc-id + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: REDSHIFT + url: jdbc:redshift://aws.endpoint:5439/demo?autosave=true + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '379' Content-Type: @@ -100,34 +108,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:redshift://aws.endpoint:5439/demo?autosave=true - username: demouser - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-abc-id - name: Test2 - type: REDSHIFT - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -138,15 +133,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + alternativeDataSourceId: ds-abc-id + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: REDSHIFT + url: jdbc:redshift://aws.endpoint:5439/demo?autosave=true + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '379' Content-Type: @@ -159,34 +166,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:redshift://aws.endpoint:5439/demo?autosave=true - username: demouser - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-abc-id - name: Test2 - type: REDSHIFT - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -195,15 +189,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -214,15 +207,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_scan_sql_without_preview.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_scan_sql_without_preview.yaml index 0c912cbba..6f0ebcb61 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_scan_sql_without_preview.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_scan_sql_without_preview.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql body: sql: SELECT ol.campaign_id FROM order_lines ol LIMIT 0 headers: @@ -17,15 +14,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql response: - status: - code: 200 - message: OK + body: + string: + columns: + - dataType: INT + name: campaign_id headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '53' Content-Type: @@ -39,18 +38,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - columns: - - dataType: INT - name: campaign_id + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql.yaml index 94e9d391a..87cf9bf5b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql body: sql: SELECT * FROM products headers: @@ -17,38 +14,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '442' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: columns: @@ -89,3 +57,34 @@ interactions: - - '140' - Shorts - Clothing + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '442' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql_with_nulls_in_preview.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql_with_nulls_in_preview.yaml index e1835b1be..ca9e34446 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql_with_nulls_in_preview.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/scan_sql_with_nulls_in_preview.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql body: sql: SELECT ol.campaign_id FROM order_lines ol ORDER BY campaign_id NULLS FIRST LIMIT 5 @@ -18,15 +15,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/dataSources/demo-test-ds/scanSql response: - status: - code: 200 - message: OK + body: + string: + columns: + - dataType: INT + name: campaign_id + dataPreview: + - - null + - - null + - - null + - - null + - - null headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '104' Content-Type: @@ -40,24 +45,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - columns: - - dataType: INT - name: campaign_id - dataPreview: - - - null - - - null - - - null - - - null - - - null + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml index 8cce234bc..d54c0d069 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e4f69184445a5393c295364b9f5 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,35 +37,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: a361270e77694e18b35d0389b9abd834 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test + password: demopass schema: demo type: SNOWFLAKE - username: demouser - password: demopass url: jdbc:snowflake://gooddata.snowflakecomputing.com:443?warehouse=TIGER&db=TIGER&useProxy=true + username: demouser id: test type: dataSource headers: @@ -78,15 +74,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: SNOWFLAKE + url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '413' Content-Type: @@ -99,33 +106,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: SNOWFLAKE - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -136,15 +131,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: SNOWFLAKE + url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '413' Content-Type: @@ -157,33 +163,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: SNOWFLAKE - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -192,15 +186,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -211,21 +204,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -236,15 +229,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e4f41e9d7b27ca366205beb13fc headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -257,36 +254,31 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 65d6abccf753b88d6c4286a4046a8fe1 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test - schema: demo - type: SNOWFLAKE - username: demouser privateKey: private_key privateKeyPassphrase: private_key_passphrase + schema: demo + type: SNOWFLAKE url: jdbc:snowflake://gooddata.snowflakecomputing.com:443?warehouse=TIGER&db=TIGER&useProxy=true + username: demouser id: test type: dataSource headers: @@ -300,15 +292,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: KEY_PAIR + name: Test + schema: demo + type: SNOWFLAKE + url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '404' Content-Type: @@ -321,33 +324,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER - username: demouser - authenticationType: KEY_PAIR - name: Test - type: SNOWFLAKE - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -358,15 +349,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: KEY_PAIR + name: Test + schema: demo + type: SNOWFLAKE + url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '404' Content-Type: @@ -379,33 +381,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:snowflake://gooddata.snowflakecomputing.com:443/?application=GoodData_GoodDataCN&db=TIGER&useProxy=true&warehouse=TIGER - username: demouser - authenticationType: KEY_PAIR - name: Test - type: SNOWFLAKE - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -414,15 +404,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -433,15 +422,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml index b3f2ce2bb..001067b20 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + type: dataSource + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '671' Content-Type: @@ -36,37 +48,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -77,15 +73,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e4d1eb8e5bfb06fe78904fb36d6 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -98,35 +98,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 18aee01b26daf9bf9c24219d1c368dca + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test + password: demopass schema: demo type: POSTGRESQL - username: demouser - password: demopass url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser id: test type: dataSource headers: @@ -140,15 +135,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -161,33 +167,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -198,15 +192,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -219,33 +224,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -256,15 +249,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '356' Content-Type: @@ -277,42 +281,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=true&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: data: attributes: name: Test2 + password: demopass schema: demo type: POSTGRESQL - username: demouser - password: demopass url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer + username: demouser id: test type: dataSource headers: @@ -326,15 +318,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '358' Content-Type: @@ -347,33 +350,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test2 - type: POSTGRESQL - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 body: null headers: Accept: @@ -384,15 +375,41 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + type: dataSource + - attributes: + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer + username: demouser + id: test + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + type: dataSource + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '1021' Content-Type: @@ -405,48 +422,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds - type: dataSource - - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test2 - type: POSTGRESQL - schema: demo - id: test - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -455,15 +445,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -474,15 +463,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml index e437e6880..a26725979 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e4ec282c5205dbd0973149fa6f2 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,35 +37,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 3acaba1753cecd630ad17783e01a0512 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test2 + password: demopass schema: demo type: VERTICA - username: demouser - password: demopass url: jdbc:vertica://localhost:5433/demo?TLSmode=false + username: demouser id: test type: dataSource headers: @@ -78,15 +74,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: VERTICA + url: jdbc:vertica://localhost:5433/demo?TLSmode=false + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '336' Content-Type: @@ -99,33 +106,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:vertica://localhost:5433/demo?TLSmode=false - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test2 - type: VERTICA - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept: @@ -136,15 +131,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: VERTICA + url: jdbc:vertica://localhost:5433/demo?TLSmode=false + username: demouser + id: test + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '336' Content-Type: @@ -157,33 +163,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:vertica://localhost:5433/demo?TLSmode=false - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test2 - type: VERTICA - schema: demo - id: test - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test body: null headers: Accept-Encoding: @@ -192,15 +186,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/test response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -211,15 +204,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_csp_directive.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_csp_directive.yaml index 0b1e5aae7..3272c90b3 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_csp_directive.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_csp_directive.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives body: data: attributes: @@ -22,15 +19,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + sources: + - https://test.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '211' Content-Type: @@ -44,29 +48,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept: @@ -77,15 +73,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + sources: + - https://test.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '211' Content-Type: @@ -98,29 +101,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept-Encoding: @@ -129,15 +124,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -148,15 +142,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_jwk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_jwk.yaml index 0a9fa3c87..85f989728 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_jwk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_jwk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5af0ce12aa5b05a83183ff003a headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,30 +37,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: dcab779ee8f5cf7e390b3d6406dc377e + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks body: data: - id: demoJwk - type: jwk attributes: content: alg: RS256 @@ -71,6 +65,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk headers: Accept: - application/json @@ -82,17 +78,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + alg: RS256 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw + use: sig + x5c: + - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a + x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '1829' + - '1396' Content-Type: - application/json DATE: *id001 @@ -103,58 +116,59 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + response: body: string: data: attributes: content: - kty: RSA alg: RS256 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk type: jwk links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1396' Content-Type: - application/json DATE: *id001 @@ -165,9 +179,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -176,29 +188,12 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - kty: RSA - alg: RS256 - use: sig - x5c: - - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 - x5t: tGg2yZgC0sVyvaK49GenyQB7cuA - id: demoJwk - type: jwk - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept-Encoding: @@ -207,15 +202,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -226,15 +220,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_organization_setting.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_organization_setting.yaml index 4f04c335b..afd162c64 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_organization_setting.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/create_organization_setting.yaml @@ -1,17 +1,14 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings body: data: - id: test_setting - type: organizationSetting attributes: - type: LOCALE content: value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting headers: Accept: - application/json @@ -23,15 +20,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -45,30 +50,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept: @@ -79,15 +75,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -100,30 +104,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept-Encoding: @@ -132,15 +127,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -151,15 +145,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_csp_directive.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_csp_directive.yaml index d9adc581f..1e813b595 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_csp_directive.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_csp_directive.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives body: data: attributes: @@ -22,15 +19,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + sources: + - https://test.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '211' Content-Type: @@ -44,29 +48,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept-Encoding: @@ -75,15 +71,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -94,21 +89,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept: @@ -119,15 +114,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5e4fd2026e44ef2435defd7a6d headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -140,26 +139,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 5306149cd0936a18d255ccc2329223b8 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept-Encoding: @@ -168,15 +162,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -187,15 +180,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_jwk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_jwk.yaml index c5c51971a..9bfb30dc0 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_jwk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_jwk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5b268aa56637bf6796cb1bdbdb headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,30 +37,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: bdf42ba1da0c0b08d4d155b3eeab5b4b + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks body: data: - id: demoJwk - type: jwk attributes: content: alg: RS256 @@ -71,6 +65,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk headers: Accept: - application/json @@ -82,17 +78,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + alg: RS256 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw + use: sig + x5c: + - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a + x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '1829' + - '1396' Content-Type: - application/json DATE: *id001 @@ -103,37 +116,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - kty: RSA - alg: RS256 - use: sig - x5c: - - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 - x5t: tGg2yZgC0sVyvaK49GenyQB7cuA - id: demoJwk - type: jwk - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept-Encoding: @@ -142,15 +139,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -161,21 +157,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept: @@ -186,15 +182,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5b5dc210d63842adfa8cbd2f1b headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -207,26 +207,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 7e2c892cd373c1045935f4b343d73cc3 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept-Encoding: @@ -235,15 +230,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -254,15 +248,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_organization_setting.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_organization_setting.yaml index 7243f1a74..e19d48c9a 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_organization_setting.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/delete_organization_setting.yaml @@ -1,17 +1,14 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings body: data: - id: test_setting - type: organizationSetting attributes: - type: LOCALE content: value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting headers: Accept: - application/json @@ -23,15 +20,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -45,30 +50,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept-Encoding: @@ -77,15 +73,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -96,21 +91,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept: @@ -121,15 +116,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5dadc1406cddb670f2d50915eb headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -142,26 +141,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 9d3471cd2ea50e679c09db79cbbdd7ab + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept-Encoding: @@ -170,15 +164,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -189,15 +182,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/layout_notification_channels.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/layout_notification_channels.yaml index 4bd4482bf..92135a604 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/layout_notification_channels.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/layout_notification_channels.yaml @@ -1,19 +1,16 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels body: notificationChannels: - - id: webhook - name: Webhook + - allowedRecipients: CREATOR customDashboardUrl: https://dashboard.site - allowedRecipients: CREATOR destination: + token: '123' type: WEBHOOK url: https://webhook.site - token: '123' + id: webhook + name: Webhook headers: Accept-Encoding: - br, gzip, deflate @@ -23,15 +20,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -41,21 +37,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels body: null headers: Accept: @@ -66,15 +62,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels response: - status: - code: 200 - message: OK + body: + string: + notificationChannels: + - allowedRecipients: CREATOR + customDashboardUrl: https://dashboard.site + dashboardLinkVisibility: INTERNAL_ONLY + destination: + hasSecretKey: false + hasToken: true + type: WEBHOOK + url: https://webhook.site + destinationType: WEBHOOK + id: webhook + inPlatformNotification: DISABLED + name: Webhook headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '341' Content-Type: @@ -87,28 +95,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - notificationChannels: - - allowedRecipients: CREATOR - customDashboardUrl: https://dashboard.site - dashboardLinkVisibility: INTERNAL_ONLY - destination: - hasSecretKey: false - hasToken: true - type: WEBHOOK - url: https://webhook.site - destinationType: WEBHOOK - id: webhook - inPlatformNotification: DISABLED - name: Webhook + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_csp_directives.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_csp_directives.yaml index c6f551d26..8e113d94b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_csp_directives.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_csp_directives.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: [] + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '249' Content-Type: @@ -36,25 +36,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: [] - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives body: data: attributes: @@ -73,15 +69,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + sources: + - https://test.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '211' Content-Type: @@ -94,29 +97,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives body: data: attributes: @@ -135,15 +130,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + sources: + - https://test2.com + id: script-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '216' Content-Type: @@ -156,29 +158,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test2.com - id: script-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 body: null headers: Accept: @@ -189,15 +183,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + sources: + - https://test.com + id: font-src + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + type: cspDirective + - attributes: + sources: + - https://test2.com + id: script-src + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src + type: cspDirective + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '659' Content-Type: @@ -210,39 +221,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - sources: - - https://test.com - id: font-src - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src - type: cspDirective - - attributes: - sources: - - https://test2.com - id: script-src - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept-Encoding: @@ -251,15 +244,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -270,21 +262,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src body: null headers: Accept-Encoding: @@ -293,15 +285,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/script-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -312,15 +303,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_jwk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_jwk.yaml index b636a1835..db7dc88ac 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_jwk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_jwk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: [] + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '231' Content-Type: @@ -36,25 +36,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: [] - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 body: null headers: Accept: @@ -65,15 +61,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5c62da0875970f6c40e7b87519 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -86,30 +86,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 2ddbb363e991dc452c4c13852cef611d + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks body: data: - id: demoJwk1 - type: jwk attributes: content: alg: RS256 @@ -121,6 +114,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk1 + type: jwk headers: Accept: - application/json @@ -132,17 +127,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + alg: RS256 + e: AQAB + kid: kid1 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw + use: sig + x5c: + - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a + x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk1 + type: jwk + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '1808' + - '1376' Content-Type: - application/json DATE: *id001 @@ -153,37 +165,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - kty: RSA - alg: RS256 - use: sig - x5c: - - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: kid1 - x5t: tGg2yZgC0sVyvaK49GenyQB7cuA - id: demoJwk1 - type: jwk - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 body: null headers: Accept: @@ -194,15 +190,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5cdd3fa0fbdec86b5bfccd11c3 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -215,30 +215,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: b4b804b8c547855d1f7632a090590087 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks body: data: - id: demoJwk2 - type: jwk attributes: content: alg: RS256 @@ -250,6 +243,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk2 + type: jwk headers: Accept: - application/json @@ -261,79 +256,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks response: - status: - code: 201 - message: Created - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '1808' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: content: - kty: RSA alg: RS256 + e: AQAB + kid: kid2 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: kid2 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk2 type: jwk links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1376' Content-Type: - application/json DATE: *id001 @@ -344,9 +294,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -355,21 +303,38 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 + response: body: string: data: - attributes: content: - kty: RSA alg: RS256 + e: AQAB + kid: kid1 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: kid1 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk1 links: @@ -377,25 +342,54 @@ interactions: type: jwk - attributes: content: - kty: RSA alg: RS256 + e: AQAB + kid: kid2 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: kid2 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk2 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 type: jwk links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1429' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 body: null headers: Accept-Encoding: @@ -404,15 +398,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk1 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -423,21 +416,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 body: null headers: Accept-Encoding: @@ -446,15 +439,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk2 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -465,15 +457,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_organization_settings.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_organization_settings.yaml index bc91e6859..cc44a213b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_organization_settings.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/list_organization_settings.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: [] + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '263' Content-Type: @@ -36,33 +36,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: [] - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings body: data: - id: test_setting_1 - type: organizationSetting attributes: - type: LOCALE content: value: fr-FR + type: LOCALE + id: test_setting_1 + type: organizationSetting headers: Accept: - application/json @@ -74,15 +70,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting_1 + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '250' Content-Type: @@ -95,38 +99,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting_1 - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings body: data: - id: test_setting_2 - type: organizationSetting attributes: - type: FORMAT_LOCALE content: value: en-GB + type: FORMAT_LOCALE + id: test_setting_2 + type: organizationSetting headers: Accept: - application/json @@ -138,15 +133,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: en-GB + type: FORMAT_LOCALE + id: test_setting_2 + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '257' Content-Type: @@ -159,30 +162,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: en-GB - type: FORMAT_LOCALE - id: test_setting_2 - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 body: null headers: Accept: @@ -193,15 +187,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting_1 + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 + type: organizationSetting + - attributes: + content: + value: en-GB + type: FORMAT_LOCALE + id: test_setting_2 + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 + type: organizationSetting + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '753' Content-Type: @@ -214,41 +227,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting_1 - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 - type: organizationSetting - - attributes: - content: - value: en-GB - type: FORMAT_LOCALE - id: test_setting_2 - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 body: null headers: Accept-Encoding: @@ -257,15 +250,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_1 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -276,21 +268,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 body: null headers: Accept-Encoding: @@ -299,15 +291,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting_2 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -318,15 +309,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml index 834bac0a2..82eaf339b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -12,10 +9,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -28,12 +26,15 @@ interactions: Expires: - '0' Location: - - /api/v1/entities/admin/organizations/default + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -41,12 +42,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: Accept-Encoding: @@ -55,15 +55,37 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '430' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -73,7 +95,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -81,24 +106,8 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - name: Default Organization - hostname: localhost - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - id: default - type: organization - links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_allowed_origins.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_allowed_origins.yaml index 013ea8587..26cff7efd 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_allowed_origins.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_allowed_origins.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -12,15 +9,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -36,21 +32,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -59,44 +55,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '564' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -107,61 +74,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -170,44 +119,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -218,46 +183,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: PATCH - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - body: - data: - id: python-sdk-dex - type: organization - attributes: - allowedOrigins: - - https://test.com - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '554' + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -266,22 +205,46 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + data: + attributes: + allowedOrigins: + - https://test.com + id: python-sdk-dex + type: organization + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: - https://test.com earlyAccess: enableAlerting @@ -294,59 +257,42 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '554' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -355,45 +301,61 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '582' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: - https://test.com + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -404,61 +366,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '582' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -467,45 +411,61 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '582' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: - https://test.com + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -516,45 +476,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: PATCH - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - body: - data: - id: python-sdk-dex - type: organization - attributes: - allowedOrigins: [] - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '536' + - '582' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -563,22 +498,45 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + data: + attributes: + allowedOrigins: [] + id: python-sdk-dex + type: organization + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] earlyAccess: enableAlerting earlyAccessValues: @@ -590,7 +548,39 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '536' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_csp_directive.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_csp_directive.yaml index ba6e2ccce..6e74e6f59 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_csp_directive.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_csp_directive.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives body: data: attributes: @@ -22,15 +19,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + sources: + - https://test.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '211' Content-Type: @@ -44,29 +48,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: data: attributes: @@ -85,15 +81,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + sources: + - https://test2.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '212' Content-Type: @@ -106,29 +109,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test2.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept: @@ -139,15 +134,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + sources: + - https://test2.com + id: font-src + type: cspDirective + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '212' Content-Type: @@ -160,29 +162,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - sources: - - https://test2.com - id: font-src - type: cspDirective - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src body: null headers: Accept-Encoding: @@ -191,15 +185,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/cspDirectives/font-src response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -210,15 +203,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_jwk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_jwk.yaml index ebeff1f9f..9154c93e2 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_jwk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_jwk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e5bb20cf88d5a48e229bf5bfa69 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,30 +37,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 8bf1662057b91a1cf06c5b349581efa7 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks body: data: - id: demoJwk - type: jwk attributes: content: alg: RS256 @@ -71,6 +65,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk headers: Accept: - application/json @@ -82,17 +78,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + alg: RS256 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw + use: sig + x5c: + - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a + x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '1829' + - '1396' Content-Type: - application/json DATE: *id001 @@ -103,58 +116,59 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + response: body: string: data: attributes: content: - kty: RSA alg: RS256 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk type: jwk links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1396' Content-Type: - application/json DATE: *id001 @@ -165,9 +179,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -176,33 +188,14 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - kty: RSA - alg: RS256 - use: sig - x5c: - - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 - x5t: tGg2yZgC0sVyvaK49GenyQB7cuA - id: demoJwk - type: jwk - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: data: - id: demoJwk - type: jwk attributes: content: alg: RS384 @@ -214,6 +207,8 @@ interactions: x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk headers: Accept: - application/json @@ -225,17 +220,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + content: + alg: RS384 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw + use: sig + x5c: + - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a + x5t: tGg2yZgC0sVyvaK49GenyQB7cuA + id: demoJwk + type: jwk + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1397' Content-Type: - application/json DATE: *id001 @@ -246,9 +258,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -257,50 +267,50 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + response: body: string: data: attributes: content: - kty: RSA alg: RS384 + e: AQAB + kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 + kty: RSA + n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw use: sig x5c: - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 x5t: tGg2yZgC0sVyvaK49GenyQB7cuA id: demoJwk type: jwk links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1397' Content-Type: - application/json DATE: *id001 @@ -311,9 +321,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -322,29 +330,12 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - kty: RSA - alg: RS384 - use: sig - x5c: - - MIIDbjCCAlagAwIBAgIUQ/BwWYGeDkDQjbUycWZqI/FeUDcwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xETAPBgNVBAoMCEdvb2REYXRhMRUwEwYDVQQDDAxnb29kZGF0YS5jb20wHhcNMjMwODE2MTM1NDMyWhcNMjMwOTE1MTM1NDMyWjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzERMA8GA1UECgwIR29vZERhdGExFTATBgNVBAMMDGdvb2RkYXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALF4sOXTjpeg8ABSmED+tt4VDrO09H9piRLzDdT/gJFW8GoMWpyc8kaSSV9s8l7SGJ7E65bI60kcwU71gWQlxluF6ZnEiCqEZMv4QSRoCurISt9++aE4XAKtNSWVhFl1Nq6GMgUM+1cb1EiAD5kFV5/UwkO2E/00DoN/Q86Ldj2T2bWmyjNiEBLVer1ZnIqs90JDJ3Jbxp1AHGuimQjwaLXTV/XVnnQDgR5oqQs82CB7rZzF7E2bTwhL65YGMktcg+7tVmsT4JfOA+roJagwRelhdVa9n4Hnln8ro4if1NugQqug5hkAjewTwISSbKOm7z9uxufMGRkdxzP24ye9emcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBAQA2j3W4+qAkp0K6WP0gogMhqToJCx4/ojRdJ0hJeoIluIAiTzL3uDmG+85xbQ758qD6Ya1Mty6aPdNekFxYlUmulhYY+2Sdby6ChQIUgS9wj1sNFuo4e3U3JVpBfdtJq3diNTcEO/iNWds9MRtNzmrkRIDxAyZvB79Ghuq8i+J9OQ1Na0MEDqKD+KrW0eLT661sT0HgBJCyZaDFQHaiFs3GXEP2QMseMXZuuhLrg8im7DsO+skQtIWH02x6xxKgj/o5bRmoU4ArOzYRWehrrj+pEeAEIVStLzSnhl4v4ovrQ7P5YbeHLFvmw6rb0wp0HYmuZIvA+wJa0uazJjfzjv3a - n: sXiw5dOOl6DwAFKYQP623hUOs7T0f2mJEvMN1P-AkVbwagxanJzyRpJJX2zyXtIYnsTrlsjrSRzBTvWBZCXGW4XpmcSIKoRky_hBJGgK6shK3375oThcAq01JZWEWXU2roYyBQz7VxvUSIAPmQVXn9TCQ7YT_TQOg39Dzot2PZPZtabKM2IQEtV6vVmciqz3QkMnclvGnUAca6KZCPBotdNX9dWedAOBHmipCzzYIHutnMXsTZtPCEvrlgYyS1yD7u1WaxPgl84D6uglqDBF6WF1Vr2fgeeWfyujiJ_U26BCq6DmGQCN7BPAhJJso6bvP27G58wZGR3HM_bjJ716Zw - e: AQAB - kid: Gkncy6f9BSp7wdav8w4SNZE1yt0 - x5t: tGg2yZgC0sVyvaK49GenyQB7cuA - id: demoJwk - type: jwk - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk body: null headers: Accept-Encoding: @@ -353,15 +344,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/jwks/demoJwk response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -372,15 +362,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml index a6aec949f..494a1647a 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -12,10 +9,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -28,12 +26,15 @@ interactions: Expires: - '0' Location: - - /api/v1/entities/admin/organizations/default + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -41,12 +42,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: Accept-Encoding: @@ -55,39 +55,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '430' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' body: string: data: attributes: - name: Default Organization - hostname: localhost + allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -98,42 +74,31 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout - id: default + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex type: organization links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/default Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -141,12 +106,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: Accept-Encoding: @@ -155,25 +119,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '430' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -181,13 +151,28 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Default Organization - hostname: localhost + allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -198,41 +183,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout - id: default + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex type: organization links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default - - request: - method: PATCH - uri: http://localhost:3000/api/v1/entities/admin/organizations/default - body: - data: - id: default - type: organization - attributes: - name: test_organization - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '427' + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -240,7 +204,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -248,13 +215,36 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + data: + attributes: + name: test_organization + id: python-sdk-dex + type: organization + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: test_organization - hostname: localhost + allowedOrigins: [] earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -265,42 +255,30 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout - id: default + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: test_organization + id: python-sdk-dex type: organization links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '0' + - '539' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/default Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -308,12 +286,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: Accept-Encoding: @@ -322,25 +299,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '427' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -348,13 +331,28 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: test_organization - hostname: localhost + allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -365,42 +363,31 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout - id: default + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: test_organization + region: '' + id: python-sdk-dex type: organization links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '0' + - '567' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/default Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -408,12 +395,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: Accept-Encoding: @@ -422,25 +408,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '427' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -448,13 +440,28 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: test_organization - hostname: localhost + allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -465,19 +472,49 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout - id: default + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: test_organization + region: '' + id: python-sdk-dex type: organization links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '567' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PATCH - uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: data: - id: default - type: organization attributes: - name: Default Organization + name: Python SDK Dex + id: python-sdk-dex + type: organization headers: Accept: - application/json @@ -489,15 +526,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PATCH + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '430' + - '536' Content-Type: - application/json DATE: *id001 @@ -507,7 +564,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -515,24 +575,8 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: - data: - attributes: - name: Default Organization - hostname: localhost - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - id: default - type: organization - links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_organization_setting.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_organization_setting.yaml index b169ecd68..6884cea37 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_organization_setting.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/organization/update_organization_setting.yaml @@ -1,17 +1,14 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings body: data: - id: test_setting - type: organizationSetting attributes: - type: LOCALE content: value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting headers: Accept: - application/json @@ -23,15 +20,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -45,38 +50,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: data: - id: test_setting - type: organizationSetting attributes: - type: LOCALE content: value: en-GB + type: LOCALE + id: test_setting + type: organizationSetting headers: Accept: - application/json @@ -88,15 +84,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + content: + value: en-GB + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -109,30 +113,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: en-GB - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept: @@ -143,15 +138,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + content: + value: en-GB + type: LOCALE + id: test_setting + type: organizationSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '246' Content-Type: @@ -164,30 +167,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: en-GB - type: LOCALE - id: test_setting - type: organizationSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting body: null headers: Accept-Encoding: @@ -196,15 +190,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organizationSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -215,15 +208,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml index e946846e6..257b52ebc 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions body: null headers: Accept: @@ -14,15 +11,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '292' Content-Type: @@ -36,16 +50,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions + response: body: string: hierarchyPermissions: @@ -66,28 +98,9 @@ interactions: id: demoGroup type: userGroup name: VIEW - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '292' Content-Type: @@ -100,33 +113,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_available_assignees.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_available_assignees.yaml index 5f654f756..19747bfe5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_available_assignees.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_available_assignees.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/availableAssignees body: null headers: Accept: @@ -14,15 +11,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/availableAssignees response: - status: - code: 200 - message: OK + body: + string: + userGroups: + - id: visitorsGroup + name: visitors + - id: demoGroup + name: demo group + users: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '107' Content-Type: @@ -36,21 +38,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userGroups: - - id: visitorsGroup - name: visitors - - id: demoGroup - name: demo group - users: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_dashboard_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_dashboard_permissions.yaml index d749193fe..c4fcce07f 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_dashboard_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/list_dashboard_permissions.yaml @@ -1,19 +1,16 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions body: - - permissions: - - VIEW - assigneeIdentifier: + - assigneeIdentifier: id: visitorsGroup type: userGroup - - permissions: + permissions: - VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + permissions: + - VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -23,15 +20,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -41,21 +37,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions body: null headers: Accept: @@ -66,15 +62,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions response: - status: - code: 200 - message: OK + body: + string: + rules: + - permissions: + - level: VIEW + source: direct + type: allWorkspaceUsers + userGroups: + - id: visitorsGroup + name: visitors + permissions: + - level: VIEW + source: direct + users: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '209' Content-Type: @@ -87,41 +94,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - rules: - - permissions: - - level: VIEW - source: direct - type: allWorkspaceUsers - userGroups: - - id: visitorsGroup - name: visitors - permissions: - - level: VIEW - source: direct - users: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions body: - - permissions: [] - assigneeIdentifier: + - assigneeIdentifier: id: visitorsGroup type: userGroup - - permissions: [] - assigneeRule: + permissions: [] + - assigneeRule: type: allWorkspaceUsers + permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -131,15 +126,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -148,21 +142,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions body: null headers: Accept: @@ -173,15 +167,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions response: - status: - code: 200 - message: OK + body: + string: + rules: [] + userGroups: [] + users: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '39' Content-Type: @@ -194,18 +190,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - rules: [] - userGroups: [] - users: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_dashboard_permissions_declarative_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_dashboard_permissions_declarative_workspace.yaml index 19d3e7554..b4e8c6c02 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_dashboard_permissions_declarative_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_dashboard_permissions_declarative_workspace.yaml @@ -1,19 +1,16 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions body: - - permissions: - - VIEW - assigneeIdentifier: + - assigneeIdentifier: id: visitorsGroup type: userGroup - - permissions: + permissions: - VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + permissions: + - VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -23,15 +20,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -41,21 +37,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions body: null headers: Accept: @@ -66,37 +62,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '209' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: rules: @@ -111,30 +79,11 @@ interactions: - level: VIEW source: direct users: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '209' Content-Type: - application/json DATE: *id001 @@ -145,9 +94,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -156,8 +103,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo + response: body: string: analytics: @@ -169,46 +133,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' createdAt: 2025-08-07 11:45 createdBy: @@ -269,143 +233,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' createdAt: 2025-08-07 11:45 createdBy: @@ -442,19 +406,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -462,15 +426,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -1056,9 +1020,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2052,17 +2016,46 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions body: - - permissions: [] - assigneeIdentifier: + - assigneeIdentifier: id: visitorsGroup type: userGroup - - permissions: [] - assigneeRule: + permissions: [] + - assigneeRule: type: allWorkspaceUsers + permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -2072,15 +2065,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/managePermissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2089,21 +2081,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions body: null headers: Accept: @@ -2114,15 +2106,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/analyticalDashboards/campaign/permissions response: - status: - code: 200 - message: OK + body: + string: + rules: [] + userGroups: [] + users: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '39' Content-Type: @@ -2135,18 +2129,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - rules: [] - userGroups: [] - users: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_organization_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_organization_permissions.yaml index f55aa971c..65e7c7bb0 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_organization_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/manage_organization_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/organization/managePermissions body: - assigneeIdentifier: id: adminGroup @@ -20,15 +17,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/organization/managePermissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -38,21 +34,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: null headers: Accept: @@ -63,15 +59,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 200 - message: OK + body: + string: + - assignee: + id: adminGroup + type: userGroup + name: MANAGE + - assignee: + id: adminGroup + type: userGroup + name: SELF_CREATE_TOKEN headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '148' Content-Type: @@ -84,29 +87,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - - assignee: - id: adminGroup - type: userGroup - name: MANAGE - - assignee: - id: adminGroup - type: userGroup - name: SELF_CREATE_TOKEN + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: - assignee: id: adminGroup @@ -121,15 +116,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -138,21 +132,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: null headers: Accept: @@ -163,15 +157,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 200 - message: OK + body: + string: + - assignee: + id: adminGroup + type: userGroup + name: MANAGE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '69' Content-Type: @@ -184,19 +181,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - - assignee: - id: adminGroup - type: userGroup - name: MANAGE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_organization_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_organization_permissions.yaml index df91eba38..81cd7be39 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_organization_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_organization_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: - assignee: id: adminGroup @@ -22,15 +19,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -40,21 +36,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: null headers: Accept: @@ -65,15 +61,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 200 - message: OK + body: + string: + - assignee: + id: adminGroup + type: userGroup + name: MANAGE + - assignee: + id: adminGroup + type: userGroup + name: SELF_CREATE_TOKEN headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '148' Content-Type: @@ -86,29 +89,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - - assignee: - id: adminGroup - type: userGroup - name: MANAGE - - assignee: - id: adminGroup - type: userGroup - name: SELF_CREATE_TOKEN + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: - assignee: id: adminGroup @@ -123,15 +118,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -140,21 +134,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions body: null headers: Accept: @@ -165,15 +159,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/organization/permissions response: - status: - code: 200 - message: OK + body: + string: + - assignee: + id: adminGroup + type: userGroup + name: MANAGE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '69' Content-Type: @@ -186,19 +183,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - - assignee: - id: adminGroup - type: userGroup - name: MANAGE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml index a77e4c4be..a53bee4c7 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions body: null headers: Accept: @@ -14,15 +11,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: [] + permissions: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '44' Content-Type: @@ -36,42 +34,40 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: [] - permissions: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions body: - permissions: + hierarchyPermissions: - assignee: id: demo2 type: user - name: ANALYZE + name: MANAGE - assignee: id: demoGroup type: userGroup - name: VIEW - hierarchyPermissions: + name: ANALYZE + permissions: - assignee: id: demo2 type: user - name: MANAGE + name: ANALYZE - assignee: id: demoGroup type: userGroup - name: ANALYZE + name: VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -81,15 +77,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -98,21 +93,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions body: null headers: Accept: @@ -123,15 +118,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '292' Content-Type: @@ -144,42 +156,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions body: - permissions: [] hierarchyPermissions: [] + permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -189,15 +183,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -206,21 +199,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions body: null headers: Accept: @@ -231,15 +224,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: [] + permissions: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '44' Content-Type: @@ -252,17 +246,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: [] - permissions: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml index 59e746f21..5cb436318 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -97,11 +62,41 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser?include=userGroups body: null headers: Accept: @@ -112,15 +107,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser?include=userGroups response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e63dcf3bf9696e10da9eb40fc51 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -133,40 +132,35 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: f91aa2b3af3a7fddc9cb13e8089bc282 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users body: data: - id: newUser - type: user attributes: + authenticationId: newUser_auth_id + email: john.doe@email.com firstname: john lastname: doe - email: john.doe@email.com - authenticationId: newUser_auth_id + id: newUser relationships: userGroups: data: - id: demoGroup type: userGroup + type: user headers: Accept: - application/json @@ -178,15 +172,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationId: newUser_auth_id + email: john.doe@email.com + firstname: john + lastname: doe + id: newUser + type: user + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '264' Content-Type: @@ -199,31 +202,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: newUser_auth_id - firstname: john - lastname: doe - email: john.doe@email.com - id: newUser - type: user - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser?include=userGroups body: null headers: Accept: @@ -234,45 +227,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser?include=userGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '564' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: authenticationId: newUser_auth_id + email: john.doe@email.com firstname: john lastname: doe - email: john.doe@email.com id: newUser relationships: userGroups: @@ -289,30 +254,11 @@ interactions: type: userGroup links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser?include=userGroups - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '564' Content-Type: - application/json DATE: *id001 @@ -323,9 +269,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -334,8 +278,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -373,9 +334,9 @@ interactions: type: user - attributes: authenticationId: newUser_auth_id + email: john.doe@email.com firstname: john lastname: doe - email: john.doe@email.com id: newUser links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser @@ -398,11 +359,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '428' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser body: null headers: Accept-Encoding: @@ -411,15 +401,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/newUser response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -430,15 +419,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml index 37a40fe1f..bc24253be 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -97,11 +62,41 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '266' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup?include=ALL body: null headers: Accept: @@ -112,15 +107,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup?include=ALL response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e659b41ddbbd48de25fb0b9c53c headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -133,37 +132,32 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 8623549b02e6c3be579ddff29e413523 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups body: data: - id: newUserGroup - type: userGroup attributes: name: NEWUSERGROUP + id: newUserGroup relationships: parents: data: - id: demoGroup type: userGroup + type: userGroup headers: Accept: - application/json @@ -175,15 +169,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: NEWUSERGROUP + id: newUserGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '204' Content-Type: @@ -196,28 +196,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: NEWUSERGROUP - id: newUserGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup?include=ALL body: null headers: Accept: @@ -228,37 +221,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup?include=ALL response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '494' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -280,30 +245,11 @@ interactions: type: userGroup links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup?include=ALL - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '494' Content-Type: - application/json DATE: *id001 @@ -314,9 +260,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -325,8 +269,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 + response: body: string: data: @@ -386,11 +347,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '298' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup body: null headers: Accept-Encoding: @@ -399,15 +389,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/newUserGroup response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -418,15 +407,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml index d6a4df3b6..adc36215b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: null headers: Accept: @@ -14,15 +11,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 200 - message: OK + body: + string: + userGroups: + - id: adminGroup + permissions: [] + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + permissions: [] + - id: demoGroup + name: demo group + permissions: [] + - id: visitorsGroup + name: visitors + parents: + - id: demoGroup + type: userGroup + permissions: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -36,16 +49,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups + response: body: string: userGroups: @@ -65,28 +96,9 @@ interactions: - id: demoGroup type: userGroup permissions: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -99,32 +111,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userGroups: - - id: adminGroup - permissions: [] - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - permissions: [] - - id: demoGroup - name: demo group - permissions: [] - - id: visitorsGroup - name: visitors - parents: - - id: demoGroup - type: userGroup - permissions: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml index 089b0c4fe..1a3a2e7ac 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -14,15 +11,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK + body: + string: + users: + - id: admin + permissions: [] + settings: [] + userGroups: + - id: adminGroup + type: userGroup + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo + permissions: [] + settings: [] + userGroups: + - id: adminGroup + type: userGroup + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + permissions: [] + settings: [] + userGroups: + - id: demoGroup + type: userGroup headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '453' Content-Type: @@ -36,16 +53,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users + response: body: string: users: @@ -69,28 +104,9 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '453' Content-Type: @@ -103,36 +119,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - users: - - id: admin - permissions: [] - settings: [] - userGroups: - - id: adminGroup - type: userGroup - - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs - id: demo - permissions: [] - settings: [] - userGroups: - - id: adminGroup - type: userGroup - - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - permissions: [] - settings: [] - userGroups: - - id: demoGroup - type: userGroup + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml index 14f4170ea..012860893 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -86,33 +54,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '760' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -120,16 +70,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups + response: body: string: userGroups: @@ -170,3 +138,33 @@ interactions: userGroups: - id: demoGroup type: userGroup + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '760' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml index d9cc140a5..0170df8fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups body: null headers: Accept: @@ -14,15 +11,33 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + relationships: + userGroups: + data: + - id: demoGroup + type: userGroup + type: user + included: + - attributes: + name: demo group + id: demoGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '540' Content-Type: @@ -36,34 +51,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - relationships: - userGroups: - data: - - id: demoGroup - type: userGroup - type: user - included: - - attributes: - name: demo group - id: demoGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml index 4a77218ab..e2b293c64 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/get_user_group.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL body: null headers: Accept: @@ -14,15 +11,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: demo group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '208' Content-Type: @@ -36,22 +39,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml index 25d928d17..fc9564c7e 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/list_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -97,5 +62,38 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '266' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml index 9f2b5f7a8..efbcba87b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -97,5 +62,38 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml index f7482dc87..b1d98e9fe 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -69,33 +37,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '308' + - '453' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -103,16 +53,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups + response: body: string: userGroups: @@ -132,30 +100,11 @@ interactions: - id: demoGroup type: userGroup permissions: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '308' Content-Type: - application/json DATE: *id001 @@ -166,9 +115,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -177,8 +124,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -227,11 +191,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -247,15 +240,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -264,21 +256,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -287,15 +279,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -310,21 +301,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -333,15 +324,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -354,42 +365,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -417,15 +407,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -434,21 +423,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: null headers: Accept: @@ -459,15 +448,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 200 - message: OK + body: + string: + userGroups: + - id: adminGroup + permissions: [] + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + permissions: [] + - id: demoGroup + name: demo group + permissions: [] + - id: visitorsGroup + name: visitors + parents: + - id: demoGroup + type: userGroup + permissions: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -480,38 +485,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userGroups: - - id: adminGroup - permissions: [] - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - permissions: [] - - id: demoGroup - name: demo group - permissions: [] - - id: visitorsGroup - name: visitors - parents: - - id: demoGroup - type: userGroup - permissions: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -539,15 +527,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -556,43 +543,43 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -602,15 +589,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -619,15 +605,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml index b4a9d4f16..7f1bfd27f 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -69,33 +37,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '453' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -103,9 +53,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -114,8 +62,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -164,57 +129,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '0' + - '376' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -223,44 +171,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -271,37 +235,65 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -311,15 +303,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -328,21 +319,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -353,37 +344,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -407,31 +370,58 @@ interactions: userGroups: - id: demoGroup type: userGroup + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '453' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -441,15 +431,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -458,15 +447,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml index cccc05fee..ebe117769 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -86,33 +54,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '760' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -120,9 +70,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -131,8 +79,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -181,11 +146,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -201,15 +195,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -218,21 +211,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -241,15 +234,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -264,21 +256,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -287,15 +279,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -308,42 +320,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: userGroups: - id: adminGroup @@ -364,25 +355,25 @@ interactions: permissions: [] users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -392,15 +383,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -409,21 +399,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -434,37 +424,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -505,9 +467,36 @@ interactions: userGroups: - id: demoGroup type: userGroup + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '760' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: userGroups: - id: adminGroup @@ -528,25 +517,25 @@ interactions: permissions: [] users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -556,15 +545,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -573,15 +561,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml index f0c824a53..fdcba1ae2 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '308' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -65,33 +33,15 @@ interactions: - id: demoGroup type: userGroup permissions: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '453' + - '308' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -99,16 +49,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users + response: body: string: users: @@ -132,30 +100,11 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '453' Content-Type: - application/json DATE: *id001 @@ -166,9 +115,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -177,8 +124,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -227,11 +191,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -247,15 +240,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -264,21 +256,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -306,15 +298,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -323,21 +314,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: null headers: Accept: @@ -348,15 +339,31 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 200 - message: OK + body: + string: + userGroups: + - id: adminGroup + permissions: [] + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + permissions: [] + - id: demoGroup + name: demo group + permissions: [] + - id: visitorsGroup + name: visitors + parents: + - id: demoGroup + type: userGroup + permissions: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -369,38 +376,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userGroups: - - id: adminGroup - permissions: [] - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - permissions: [] - - id: demoGroup - name: demo group - permissions: [] - - id: visitorsGroup - name: visitors - parents: - - id: demoGroup - type: userGroup - permissions: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -428,15 +418,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -445,43 +434,43 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -491,15 +480,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -508,15 +496,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml index 442138278..c47f0501c 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -69,33 +37,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '453' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -103,9 +53,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -114,8 +62,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -164,33 +129,62 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -200,15 +194,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -217,21 +210,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -242,37 +235,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -296,31 +261,58 @@ interactions: userGroups: - id: demoGroup type: userGroup + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '453' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -330,15 +322,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -347,15 +338,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml index 3f5f5c9fe..45414932f 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -86,33 +54,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '760' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -120,9 +70,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -131,8 +79,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + response: body: string: data: @@ -181,11 +146,40 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: userGroups: - id: adminGroup @@ -201,15 +195,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -218,21 +211,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: userGroups: - id: adminGroup @@ -253,25 +246,25 @@ interactions: permissions: [] users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -281,15 +274,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -298,21 +290,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -323,37 +315,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -394,9 +358,36 @@ interactions: userGroups: - id: demoGroup type: userGroup + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '760' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: userGroups: - id: adminGroup @@ -417,25 +408,25 @@ interactions: permissions: [] users: - id: admin + permissions: [] + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + id: demo permissions: [] - - id: demo - authId: CiRhMzA4NmU3MS0zYjY2LTQ3NTItODIxMC0wN2VmODQ5NDNkOGESBWxvY2Fs + settings: [] userGroups: - id: adminGroup type: userGroup - settings: [] + - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 permissions: [] - - id: demo2 - authId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + settings: [] userGroups: - id: demoGroup type: userGroup - settings: [] - permissions: [] headers: Accept-Encoding: - br, gzip, deflate @@ -445,15 +436,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -462,15 +452,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml index a85a2fe2c..2dafd018d 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '308' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -65,33 +33,15 @@ interactions: - id: demoGroup type: userGroup permissions: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -99,16 +49,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/userGroups + response: body: string: userGroups: @@ -128,55 +96,36 @@ interactions: - id: demoGroup type: userGroup permissions: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '308' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -185,44 +134,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -233,61 +198,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -296,44 +243,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -344,9 +307,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml index d2fcc3f11..5fa6fe484 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '453' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: users: @@ -69,33 +37,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '453' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -103,16 +53,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/users + response: body: string: users: @@ -136,55 +104,36 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '453' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -193,44 +142,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -241,61 +206,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -304,44 +251,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -352,9 +315,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml index 675699390..bf571f8cc 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '760' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: userGroups: @@ -86,33 +54,15 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '760' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -120,16 +70,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/usersAndUserGroups + response: body: string: userGroups: @@ -170,55 +138,36 @@ interactions: userGroups: - id: demoGroup type: userGroup - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '760' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -227,44 +176,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -275,61 +240,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -338,44 +285,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -386,9 +349,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_api_tokens.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_api_tokens.yaml index 9de6e5ae7..cf8337bc8 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_api_tokens.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_api_tokens.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: [] + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '263' Content-Type: @@ -36,25 +36,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: [] - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens body: data: id: test_token @@ -70,15 +66,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + bearerToken: ZGVtbzp0ZXN0X3Rva2VuOmJzdXJZQjNMeFpOVlZKZDM2YVVxK3hmb0I3dXB0L1JC + id: test_token + type: apiToken + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '268' Content-Type: @@ -91,28 +93,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - bearerToken: ZGVtbzp0ZXN0X3Rva2VuOlVvenRGaHVTNUZSQ2g3SHJHa21ZNTNmaGRkUkVuWmFv - id: test_token - type: apiToken - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token body: null headers: Accept: @@ -123,15 +118,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: {} + id: test_token + type: apiToken + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '188' Content-Type: @@ -144,27 +144,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: {} - id: test_token - type: apiToken - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 body: null headers: Accept: @@ -175,15 +169,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: {} + id: test_token + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token + type: apiToken + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '442' Content-Type: @@ -196,30 +198,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: {} - id: test_token - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token - type: apiToken - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token body: null headers: Accept-Encoding: @@ -228,15 +221,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo/apiTokens/test_token response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -247,15 +239,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_assign_permissions_bulk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_assign_permissions_bulk.yaml index 941628b5b..8a9602dc8 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_assign_permissions_bulk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_assign_permissions_bulk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - MANAGE + id: demo + name: Demo + permissions: + - ANALYZE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '189' Content-Type: @@ -36,33 +44,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - MANAGE - id: demo - name: Demo - permissions: - - ANALYZE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: null headers: Accept: @@ -73,15 +69,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - USE + workspaces: + - hierarchyPermissions: + - ANALYZE + id: demo + name: Demo + permissions: + - VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '184' Content-Type: @@ -94,51 +101,39 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - USE - workspaces: - - hierarchyPermissions: - - ANALYZE - id: demo - name: Demo - permissions: - - VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/assignPermissions body: assignees: - id: demo2 type: user - id: demoGroup type: userGroup + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE workspaces: - hierarchyPermissions: - ANALYZE id: demo - permissions: - - VIEW name: Demo - dataSources: - - id: demo-test-ds permissions: - - MANAGE - name: demo-test-ds + - VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -148,15 +143,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/assignPermissions response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' DATE: *id001 @@ -167,21 +161,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -192,15 +186,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - ANALYZE + id: demo + name: Demo + permissions: + - VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '187' Content-Type: @@ -213,16 +218,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions + response: body: string: dataSources: @@ -237,28 +260,9 @@ interactions: name: Demo permissions: - VIEW - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '187' Content-Type: @@ -271,46 +275,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - ANALYZE - id: demo - name: Demo - permissions: - - VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - MANAGE - name: demo-test-ds workspaces: - hierarchyPermissions: - MANAGE id: demo + name: Demo permissions: - ANALYZE - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -320,15 +312,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -337,34 +328,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - USE - name: demo-test-ds workspaces: - hierarchyPermissions: - ANALYZE id: demo + name: Demo permissions: - VIEW - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -374,15 +365,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -391,15 +381,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_group_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_group_permissions.yaml index a6361823f..f8e8600af 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_group_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_group_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - USE + workspaces: + - hierarchyPermissions: + - ANALYZE + id: demo + name: Demo + permissions: + - VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '184' Content-Type: @@ -36,27 +44,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - USE - workspaces: - - hierarchyPermissions: - - ANALYZE - id: demo - name: Demo - permissions: - - VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_permissions.yaml index 916463b2d..114f508ed 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_get_user_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - MANAGE + id: demo + name: Demo + permissions: + - ANALYZE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '189' Content-Type: @@ -36,27 +44,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - MANAGE - id: demo - name: Demo - permissions: - - ANALYZE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_group_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_group_permissions.yaml index 2b389daee..537b62ff6 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_group_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_group_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - USE + workspaces: + - hierarchyPermissions: + - ANALYZE + id: demo + name: Demo + permissions: + - VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '184' Content-Type: @@ -36,46 +44,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - USE - workspaces: - - hierarchyPermissions: - - ANALYZE - id: demo - name: Demo - permissions: - - VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - MANAGE - name: demo-test-ds workspaces: - hierarchyPermissions: - ANALYZE id: demo + name: Demo permissions: - VIEW - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -85,15 +81,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -102,21 +97,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: null headers: Accept: @@ -127,15 +122,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - ANALYZE + id: demo + name: Demo + permissions: + - VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '187' Content-Type: @@ -148,46 +154,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - ANALYZE - id: demo - name: Demo - permissions: - - VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - USE - name: demo-test-ds workspaces: - hierarchyPermissions: - ANALYZE id: demo + name: Demo permissions: - VIEW - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -197,15 +191,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/userGroups/demoGroup/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -214,15 +207,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_permissions.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_permissions.yaml index ba3a51362..4af61c59e 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_permissions.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_manage_user_permissions.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - MANAGE + id: demo + name: Demo + permissions: + - ANALYZE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '189' Content-Type: @@ -36,46 +44,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - MANAGE - id: demo - name: Demo - permissions: - - ANALYZE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - USE - name: demo-test-ds workspaces: - hierarchyPermissions: - MANAGE id: demo + name: Demo permissions: - MANAGE - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -85,15 +81,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -102,21 +97,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -127,15 +122,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - USE + workspaces: + - hierarchyPermissions: + - MANAGE + id: demo + name: Demo + permissions: + - MANAGE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '185' Content-Type: @@ -148,46 +154,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - USE - workspaces: - - hierarchyPermissions: - - MANAGE - id: demo - name: Demo - permissions: - - MANAGE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - MANAGE - name: demo-test-ds workspaces: - hierarchyPermissions: - MANAGE id: demo + name: Demo permissions: - ANALYZE - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -197,15 +191,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -214,15 +207,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_revoke_permissions_bulk.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_revoke_permissions_bulk.yaml index 15acb42f6..6ecbd0470 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_revoke_permissions_bulk.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_revoke_permissions_bulk.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -14,15 +11,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE + workspaces: + - hierarchyPermissions: + - MANAGE + id: demo + name: Demo + permissions: + - ANALYZE headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '189' Content-Type: @@ -36,49 +44,37 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: - - id: demo-test-ds - name: demo-test-ds - permissions: - - MANAGE - workspaces: - - hierarchyPermissions: - - MANAGE - id: demo - name: Demo - permissions: - - ANALYZE + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/revokePermissions body: assignees: - id: demo2 type: user + dataSources: + - id: demo-test-ds + name: demo-test-ds + permissions: + - MANAGE workspaces: - hierarchyPermissions: - MANAGE id: demo - permissions: - - ANALYZE name: Demo - dataSources: - - id: demo-test-ds permissions: - - MANAGE - name: demo-test-ds + - ANALYZE headers: Accept-Encoding: - br, gzip, deflate @@ -88,15 +84,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/revokePermissions response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' DATE: *id001 @@ -107,21 +102,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: null headers: Accept: @@ -132,15 +127,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 200 - message: OK + body: + string: + dataSources: [] + workspaces: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '34' Content-Type: @@ -153,36 +149,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - dataSources: [] - workspaces: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions body: dataSources: - id: demo-test-ds + name: demo-test-ds permissions: - MANAGE - name: demo-test-ds workspaces: - hierarchyPermissions: - MANAGE id: demo + name: Demo permissions: - ANALYZE - name: Demo headers: Accept-Encoding: - br, gzip, deflate @@ -192,15 +186,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/userManagement/users/demo2/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -209,15 +202,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_group.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_group.yaml index d9cc140a5..0170df8fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_group.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_group.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups body: null headers: Accept: @@ -14,15 +11,33 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + relationships: + userGroups: + data: + - id: demoGroup + type: userGroup + type: user + included: + - attributes: + name: demo group + id: demoGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '540' Content-Type: @@ -36,34 +51,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - relationships: - userGroups: - data: - - id: demoGroup - type: userGroup - type: user - included: - - attributes: - name: demo group - id: demoGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_groups.yaml index d9cc140a5..0170df8fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_add_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups body: null headers: Accept: @@ -14,15 +11,33 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + relationships: + userGroups: + data: + - id: demoGroup + type: userGroup + type: user + included: + - attributes: + name: demo group + id: demoGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '540' Content-Type: @@ -36,34 +51,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - relationships: - userGroups: - data: - - id: demoGroup - type: userGroup - type: user - included: - - attributes: - name: demo group - id: demoGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_remove_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_remove_user_groups.yaml index d9cc140a5..0170df8fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_remove_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_remove_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups body: null headers: Accept: @@ -14,15 +11,33 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + relationships: + userGroups: + data: + - id: demoGroup + type: userGroup + type: user + included: + - attributes: + name: demo group + id: demoGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '540' Content-Type: @@ -36,34 +51,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - relationships: - userGroups: - data: - - id: demoGroup - type: userGroup - type: user - included: - - attributes: - name: demo group - id: demoGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_replace_user_groups.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_replace_user_groups.yaml index d9cc140a5..0170df8fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_replace_user_groups.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/test_user_replace_user_groups.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups body: null headers: Accept: @@ -14,15 +11,33 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs + id: demo2 + relationships: + userGroups: + data: + - id: demoGroup + type: userGroup + type: user + included: + - attributes: + name: demo group + id: demoGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '540' Content-Type: @@ -36,34 +51,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: CiQ5ZGMzNjU0MC1hYzMxLTQ2MTUtOThmNy1hYzJiZDE2NzZkYzUSBWxvY2Fs - id: demo2 - relationships: - userGroups: - data: - - id: demoGroup - type: userGroup - type: user - included: - - attributes: - name: demo group - id: demoGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/demo2?include=userGroups + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml index f039a5027..8509401e7 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -97,11 +62,41 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '376' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups body: null headers: Accept: @@ -112,15 +107,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e64e2043fd6905bd894968aba24 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -133,40 +132,35 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 516174f51a7a39257c37d7f8ae3e2b50 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users body: data: - id: test_update_user_temp - type: user attributes: + authenticationId: test_update_user_temp_auth + email: temp.user@example.com firstname: Temp lastname: User - email: temp.user@example.com - authenticationId: test_update_user_temp_auth + id: test_update_user_temp relationships: userGroups: data: - id: demoGroup type: userGroup + type: user headers: Accept: - application/json @@ -178,15 +172,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationId: test_update_user_temp_auth + email: temp.user@example.com + firstname: Temp + lastname: User + id: test_update_user_temp + type: user + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '307' Content-Type: @@ -199,31 +202,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: test_update_user_temp_auth - firstname: Temp - lastname: User - email: temp.user@example.com - id: test_update_user_temp - type: user - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 body: null headers: Accept: @@ -234,40 +227,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -305,9 +267,9 @@ interactions: type: user - attributes: authenticationId: test_update_user_temp_auth + email: temp.user@example.com firstname: Temp lastname: User - email: temp.user@example.com id: test_update_user_temp links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp @@ -330,32 +292,15 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup type: userGroup links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users?include=userGroups&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '607' + - '436' Content-Type: - application/json DATE: *id001 @@ -366,24 +311,42 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups + response: body: string: data: attributes: authenticationId: test_update_user_temp_auth + email: temp.user@example.com firstname: Temp lastname: User - email: temp.user@example.com id: test_update_user_temp relationships: userGroups: @@ -400,18 +363,44 @@ interactions: type: userGroup links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '607' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp body: data: - id: test_update_user_temp - type: user attributes: + authenticationId: test_update_user_temp_123 + email: m.scott@dundermifflin.us firstname: Michael lastname: Scott - email: m.scott@dundermifflin.us - authenticationId: test_update_user_temp_123 + id: test_update_user_temp relationships: userGroups: data: @@ -419,6 +408,7 @@ interactions: type: userGroup - id: visitorsGroup type: userGroup + type: user headers: Accept: - application/json @@ -430,15 +420,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + authenticationId: test_update_user_temp_123 + email: m.scott@dundermifflin.us + firstname: Michael + lastname: Scott + id: test_update_user_temp + type: user + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '313' Content-Type: @@ -451,31 +450,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - authenticationId: test_update_user_temp_123 - firstname: Michael - lastname: Scott - email: m.scott@dundermifflin.us - id: test_update_user_temp - type: user - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups body: null headers: Accept: @@ -486,45 +475,17 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '849' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: authenticationId: test_update_user_temp_123 + email: m.scott@dundermifflin.us firstname: Michael lastname: Scott - email: m.scott@dundermifflin.us id: test_update_user_temp relationships: userGroups: @@ -549,9 +510,36 @@ interactions: type: userGroup links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp?include=userGroups + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '849' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp body: null headers: Accept-Encoding: @@ -560,15 +548,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/users/test_update_user_temp response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -579,15 +566,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml index 0678de02d..30f30f346 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/users/update_user_group.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL body: null headers: Accept: @@ -14,15 +11,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: demo group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '208' Content-Type: @@ -36,28 +39,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL body: null headers: Accept: @@ -68,15 +64,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: demo group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '208' Content-Type: @@ -89,37 +91,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup body: data: - id: demoGroup - type: userGroup attributes: name: test_update_user_group + id: demoGroup relationships: parents: data: [] + type: userGroup headers: Accept: - application/json @@ -131,15 +126,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: test_update_user_group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '208' Content-Type: @@ -152,28 +153,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: test_update_user_group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL body: null headers: Accept: @@ -184,15 +178,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: test_update_user_group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '220' Content-Type: @@ -205,28 +205,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: test_update_user_group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL body: null headers: Accept: @@ -237,15 +230,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: test_update_user_group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '220' Content-Type: @@ -258,34 +257,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: test_update_user_group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup?include=ALL + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup body: data: - id: demoGroup - type: userGroup attributes: name: demo group + id: demoGroup + type: userGroup headers: Accept: - application/json @@ -297,15 +289,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: demo group + id: demoGroup + type: userGroup + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '196' Content-Type: @@ -318,22 +316,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo group - id: demoGroup - type: userGroup - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/userGroups/demoGroup + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml index c811db63f..649183ef2 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,48 +25,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -144,7 +109,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -156,145 +121,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -306,7 +271,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -316,7 +281,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -329,19 +294,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -349,15 +314,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -367,7 +332,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -376,7 +341,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -386,7 +351,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -396,7 +361,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -406,7 +371,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -415,7 +380,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -424,7 +389,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -434,7 +399,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -444,7 +409,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -454,7 +419,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -464,7 +429,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -474,7 +439,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -484,7 +449,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -494,7 +459,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -505,7 +470,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -515,7 +480,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -525,7 +490,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -535,7 +500,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -544,7 +509,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -553,7 +518,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -562,7 +527,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -571,7 +536,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -580,7 +545,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -589,7 +554,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -654,7 +619,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -730,7 +695,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -809,7 +774,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -868,7 +833,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -925,7 +890,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -943,9 +908,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -978,7 +943,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1053,7 +1018,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1110,7 +1075,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1209,7 +1174,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1265,7 +1230,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1304,7 +1269,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1360,7 +1325,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1428,7 +1393,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1485,7 +1450,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1542,39 +1507,21 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user id: top_10_products title: Top 10 Products - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -1582,7 +1529,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Transfer-Encoding: - chunked Vary: @@ -1593,8 +1540,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel + response: body: string: analytics: @@ -1606,48 +1570,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1690,7 +1654,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1702,145 +1666,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1852,7 +1816,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1862,7 +1826,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1875,19 +1839,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -1895,15 +1859,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -1913,7 +1877,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1922,7 +1886,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1932,7 +1896,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1942,7 +1906,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1952,7 +1916,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1961,7 +1925,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1970,7 +1934,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1980,7 +1944,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1990,7 +1954,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2000,7 +1964,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2010,7 +1974,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2020,7 +1984,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2030,7 +1994,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2040,7 +2004,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2051,7 +2015,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2061,7 +2025,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2071,7 +2035,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2081,7 +2045,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2090,7 +2054,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2099,7 +2063,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2108,7 +2072,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2117,7 +2081,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2126,7 +2090,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2135,7 +2099,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2200,7 +2164,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2276,7 +2240,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2355,7 +2319,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2414,7 +2378,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2471,7 +2435,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2489,9 +2453,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2524,7 +2488,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2599,7 +2563,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2656,7 +2620,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2755,7 +2719,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2811,7 +2775,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2850,7 +2814,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2906,7 +2870,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2974,7 +2938,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3031,7 +2995,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3088,9 +3052,41 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user id: top_10_products title: Top 10 Products + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml index 3b23034fe..9ce4eb44d 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 body: null headers: Accept: @@ -14,52 +11,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels areRelationsValid: true + description: Campaign channel id sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id @@ -78,13 +43,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Campaign channels areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category @@ -103,13 +68,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns areRelationsValid: true + description: Campaign id sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id @@ -128,13 +93,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns areRelationsValid: true + description: Campaign name sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name @@ -153,13 +118,13 @@ interactions: type: label type: attribute - attributes: - title: Customer id - description: Customer id - tags: - - Customers areRelationsValid: true + description: Customer id sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id @@ -178,13 +143,13 @@ interactions: type: label type: attribute - attributes: - title: Customer name - description: Customer name - tags: - - Customers areRelationsValid: true + description: Customer name sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name @@ -203,12 +168,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Date + areRelationsValid: true description: Date + granularity: DAY tags: - Date - granularity: DAY - areRelationsValid: true + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day @@ -227,12 +192,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Month/Year + areRelationsValid: true description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH - areRelationsValid: true + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month @@ -251,12 +216,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Quarter/Year + areRelationsValid: true description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER - areRelationsValid: true + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter @@ -275,12 +240,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Week/Year + areRelationsValid: true description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK - areRelationsValid: true + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week @@ -299,12 +264,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Year + areRelationsValid: true description: Year + granularity: YEAR tags: - Date - granularity: YEAR - areRelationsValid: true + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year @@ -323,13 +288,13 @@ interactions: type: label type: attribute - attributes: - title: Order id - description: Order id - tags: - - Order lines areRelationsValid: true + description: Order id sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id @@ -348,13 +313,13 @@ interactions: type: label type: attribute - attributes: - title: Order line id - description: Order line id - tags: - - Order lines areRelationsValid: true + description: Order line id sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id @@ -373,13 +338,13 @@ interactions: type: label type: attribute - attributes: - title: Order status - description: Order status - tags: - - Order lines areRelationsValid: true + description: Order status sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status @@ -398,13 +363,13 @@ interactions: type: label type: attribute - attributes: - title: Product id - description: Product id - tags: - - Products areRelationsValid: true + description: Product id sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id @@ -423,13 +388,13 @@ interactions: type: label type: attribute - attributes: - title: Product name - description: Product name - tags: - - Products areRelationsValid: true + description: Product name sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name @@ -448,13 +413,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Products areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category @@ -473,13 +438,13 @@ interactions: type: label type: attribute - attributes: - title: Region - description: Region - tags: - - Customers areRelationsValid: true + description: Region sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region @@ -498,13 +463,13 @@ interactions: type: label type: attribute - attributes: - title: State - description: State - tags: - - Customers areRelationsValid: true + description: State sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state @@ -513,14 +478,14 @@ interactions: originId: demo originType: NATIVE relationships: - defaultView: - data: - id: state - type: label dataset: data: id: customers type: dataset + defaultView: + data: + id: state + type: label labels: data: - id: state @@ -529,13 +494,13 @@ interactions: type: label type: attribute - attributes: - title: Type - description: Type - tags: - - Campaign channels areRelationsValid: true + description: Type sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type @@ -555,139 +520,140 @@ interactions: type: attribute included: - attributes: - title: Product name description: Product name - tags: - - Products primary: true sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name valueType: TEXT id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_name type: label - attributes: - title: Order status description: Order status - tags: - - Order lines primary: true sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status valueType: TEXT id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_status type: label - attributes: - title: Order lines + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute referenceProperties: - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: products type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: product_id dataType: INT + isNullable: null + nullValue: null target: id: product_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: date + dataType: DATE isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: date + type: date - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__state + filterColumnDataType: STRING + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state + - filterColumn: wdf__region filterColumnDataType: STRING - - filterId: + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines type: dataset - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns primary: true sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name valueType: TEXT id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_name type: label - attributes: - title: Campaign channels + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -696,340 +662,323 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaign_channels type: dataset - attributes: - title: Date - Month/Year description: Month and Year (12/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.month type: label - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.quarter type: label - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels primary: true sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id valueType: TEXT id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channel_id type: label - attributes: - title: Date - Date description: Date - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.day type: label - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaigns type: dataset - attributes: - title: Order id description: Order id - tags: - - Order lines primary: true sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id valueType: TEXT id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_id type: label - attributes: - title: Customer name description: Customer name - tags: - - Customers primary: true sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name valueType: TEXT id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_name type: label - attributes: - title: Type description: Type - tags: - - Campaign channels primary: true sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type valueType: TEXT id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/type type: label - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers type: NORMAL id: customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/customers type: dataset - attributes: - title: Region description: Region - tags: - - Customers primary: true sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region valueType: TEXT id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/region type: label - attributes: - title: Category description: Category - tags: - - Products primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category valueType: TEXT id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/products.category type: label - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.week type: label - attributes: - title: Location description: Location - tags: - - Customers primary: false sourceColumn: geo__state__location sourceColumnDataType: STRING + tags: + - Customers + title: Location valueType: GEO id: geo__state__location links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/geo__state__location type: label - attributes: - title: Product id description: Product id - tags: - - Products primary: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id valueType: TEXT id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_id type: label - attributes: - title: Order line id description: Order line id - tags: - - Order lines primary: true sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id valueType: TEXT id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_line_id type: label - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/products type: dataset - attributes: - title: Date description: '' tags: - Date + title: Date type: DATE id: date links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/date type: dataset - attributes: - title: Category description: Category - tags: - - Campaign channels primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category valueType: TEXT id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channels.category type: label - attributes: - title: Customer id description: Customer id - tags: - - Customers primary: true sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id valueType: TEXT id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_id type: label - attributes: - title: Date - Year description: Year - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.year type: label - attributes: - title: State description: State - tags: - - Customers primary: true sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State valueType: TEXT id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/state type: label - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns primary: true sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id valueType: TEXT id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_id type: label links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1870' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -1037,9 +986,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1048,16 +995,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 + response: body: string: data: - attributes: - title: Campaign channels + areRelationsValid: true + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -1066,21 +1032,19 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - areRelationsValid: true + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: @@ -1106,31 +1070,31 @@ interactions: type: fact type: dataset - attributes: - title: Campaign channels per category + areRelationsValid: true description: Campaign channels per categories - tags: - - Campaign channels per category + precedence: 1 referenceProperties: - identifier: id: campaign_channels type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_channel_id dataType: STRING + isNullable: null + nullValue: null target: id: campaign_channel_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null sql: + dataSourceId: demo-test-ds statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category - dataSourceId: demo-test-ds - precedence: 1 - areRelationsValid: true + tags: + - Campaign channels per category + title: Campaign channels per category type: NORMAL id: campaign_channels_per_category links: @@ -1146,18 +1110,18 @@ interactions: type: aggregatedFact type: dataset - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns - areRelationsValid: true + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: @@ -1175,18 +1139,18 @@ interactions: type: attribute type: dataset - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers - areRelationsValid: true + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers type: NORMAL id: customers links: @@ -1208,11 +1172,11 @@ interactions: type: attribute type: dataset - attributes: - title: Date + areRelationsValid: true description: '' tags: - Date - areRelationsValid: true + title: Date type: DATE id: date links: @@ -1236,92 +1200,92 @@ interactions: type: attribute type: dataset - attributes: - title: Order lines + areRelationsValid: true + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute referenceProperties: - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: products type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: product_id dataType: INT + isNullable: null + nullValue: null target: id: product_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: date + dataType: DATE isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: date + type: date - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - areRelationsValid: true + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__state + filterColumnDataType: STRING + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state + - filterColumn: wdf__region filterColumnDataType: STRING - - filterId: + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines @@ -1346,18 +1310,18 @@ interactions: type: fact type: dataset - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products - areRelationsValid: true + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: @@ -1378,302 +1342,285 @@ interactions: type: dataset included: - attributes: - title: Product id - description: Product id - tags: - - Products + description: Product id sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id type: attribute - attributes: - title: Budget description: Budget - tags: - - Campaign channels sourceColumn: budget sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Budget id: budget links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/budget type: fact - attributes: - title: Date - Year description: Year + granularity: YEAR tags: - Date - granularity: YEAR + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year type: attribute - attributes: - title: Product name description: Product name - tags: - - Products sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name type: attribute - attributes: - title: Date - Month/Year description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month type: attribute - attributes: - title: Category description: Category - tags: - - Products sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category type: attribute - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter type: attribute - attributes: - title: Category description: Category - tags: - - Campaign channels sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category type: attribute - attributes: - title: State description: State - tags: - - Customers sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state type: attribute - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week type: attribute - attributes: - title: Order id description: Order id - tags: - - Order lines sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id type: attribute - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name type: attribute - attributes: - title: Price description: Price - tags: - - Order lines sourceColumn: price sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Price id: price links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/price type: fact - attributes: description: Budget Agg - tags: - - Campaign channels per category + operation: SUM sourceColumn: budget sourceColumnDataType: INT - operation: SUM + tags: + - Campaign channels per category id: budget_agg links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg type: aggregatedFact - attributes: - title: Date - Date description: Date + granularity: DAY tags: - Date - granularity: DAY + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day type: attribute - attributes: - title: Region description: Region - tags: - - Customers sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region type: attribute - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id type: attribute - attributes: - title: Customer id description: Customer id - tags: - - Customers sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id type: attribute - attributes: - title: Quantity description: Quantity - tags: - - Order lines sourceColumn: quantity sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Quantity id: quantity links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/quantity type: fact - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id type: attribute - attributes: - title: Type description: Type - tags: - - Campaign channels sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type type: attribute - attributes: - title: Spend description: Spend - tags: - - Campaign channels sourceColumn: spend sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Spend id: spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/spend type: fact - attributes: - title: Order status description: Order status - tags: - - Order lines sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status type: attribute - attributes: - title: Customer name description: Customer name - tags: - - Customers sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name type: attribute - attributes: - title: Order line id description: Order line id - tags: - - Order lines sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id type: attribute links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1740' Content-Type: - application/json DATE: *id001 @@ -1684,9 +1631,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1695,18 +1640,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + response: body: string: data: - attributes: - title: '# of Active Customers' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Active Customers' id: amount_of_active_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers @@ -1716,12 +1678,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Orders' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Orders' id: amount_of_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_orders @@ -1731,13 +1693,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Top Customers' areRelationsValid: true content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Top Customers' id: amount_of_top_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers @@ -1747,14 +1709,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Valid Orders' - description: '' areRelationsValid: true content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: '# of Valid Orders' id: amount_of_valid_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders @@ -1764,12 +1726,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Campaign Spend areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Campaign Spend id: campaign_spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/campaign_spend @@ -1779,12 +1741,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Order Amount areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Order Amount id: order_amount links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/order_amount @@ -1794,12 +1756,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue' id: percent_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue @@ -1809,13 +1771,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Customers' id: percent_revenue_from_top_10_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers @@ -1825,13 +1787,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Customers' id: percent_revenue_from_top_10_percent_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers @@ -1841,13 +1803,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Products' id: percent_revenue_from_top_10_percent_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products @@ -1857,13 +1819,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Products' id: percent_revenue_from_top_10_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products @@ -1873,13 +1835,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue in Category' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue in Category' id: percent_revenue_in_category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category @@ -1889,13 +1851,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue per Product' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue per Product' id: percent_revenue_per_product links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product @@ -1905,14 +1867,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue - description: '' areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: Revenue id: revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue @@ -1922,13 +1884,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Clothing) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Clothing) id: revenue-clothing links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-clothing @@ -1938,13 +1900,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Electronic) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Electronic) id: revenue-electronic links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-electronic @@ -1954,13 +1916,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Home) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Home) id: revenue-home links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-home @@ -1970,13 +1932,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Outdoor) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Outdoor) id: revenue-outdoor links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-outdoor @@ -1986,12 +1948,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Customer areRelationsValid: true content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Customer id: revenue_per_customer links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_customer @@ -2001,12 +1963,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Dollar Spent areRelationsValid: true content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Dollar Spent id: revenue_per_dollar_spent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent @@ -2016,12 +1978,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10 areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10 id: revenue_top_10 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10 @@ -2031,12 +1993,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10% areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10% id: revenue_top_10_percent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent @@ -2046,12 +2008,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue id: total_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue @@ -2061,12 +2023,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue (No Filters) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue (No Filters) id: total_revenue-no_filters links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters @@ -2076,5 +2038,37 @@ interactions: originType: NATIVE type: metric links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1089' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml index 36c7076d9..99c5a3dab 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 body: null headers: Accept: @@ -14,52 +11,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels areRelationsValid: true + description: Campaign channel id sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id @@ -78,13 +43,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Campaign channels areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category @@ -103,13 +68,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns areRelationsValid: true + description: Campaign id sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id @@ -128,13 +93,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns areRelationsValid: true + description: Campaign name sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name @@ -153,13 +118,13 @@ interactions: type: label type: attribute - attributes: - title: Customer id - description: Customer id - tags: - - Customers areRelationsValid: true + description: Customer id sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id @@ -178,13 +143,13 @@ interactions: type: label type: attribute - attributes: - title: Customer name - description: Customer name - tags: - - Customers areRelationsValid: true + description: Customer name sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name @@ -203,12 +168,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Date + areRelationsValid: true description: Date + granularity: DAY tags: - Date - granularity: DAY - areRelationsValid: true + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day @@ -227,12 +192,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Month/Year + areRelationsValid: true description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH - areRelationsValid: true + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month @@ -251,12 +216,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Quarter/Year + areRelationsValid: true description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER - areRelationsValid: true + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter @@ -275,12 +240,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Week/Year + areRelationsValid: true description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK - areRelationsValid: true + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week @@ -299,12 +264,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Year + areRelationsValid: true description: Year + granularity: YEAR tags: - Date - granularity: YEAR - areRelationsValid: true + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year @@ -323,13 +288,13 @@ interactions: type: label type: attribute - attributes: - title: Order id - description: Order id - tags: - - Order lines areRelationsValid: true + description: Order id sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id @@ -348,13 +313,13 @@ interactions: type: label type: attribute - attributes: - title: Order line id - description: Order line id - tags: - - Order lines areRelationsValid: true + description: Order line id sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id @@ -373,13 +338,13 @@ interactions: type: label type: attribute - attributes: - title: Order status - description: Order status - tags: - - Order lines areRelationsValid: true + description: Order status sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status @@ -398,13 +363,13 @@ interactions: type: label type: attribute - attributes: - title: Product id - description: Product id - tags: - - Products areRelationsValid: true + description: Product id sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id @@ -423,13 +388,13 @@ interactions: type: label type: attribute - attributes: - title: Product name - description: Product name - tags: - - Products areRelationsValid: true + description: Product name sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name @@ -448,13 +413,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Products areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category @@ -473,13 +438,13 @@ interactions: type: label type: attribute - attributes: - title: Region - description: Region - tags: - - Customers areRelationsValid: true + description: Region sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region @@ -498,13 +463,13 @@ interactions: type: label type: attribute - attributes: - title: State - description: State - tags: - - Customers areRelationsValid: true + description: State sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state @@ -513,14 +478,14 @@ interactions: originId: demo originType: NATIVE relationships: - defaultView: - data: - id: state - type: label dataset: data: id: customers type: dataset + defaultView: + data: + id: state + type: label labels: data: - id: state @@ -529,13 +494,13 @@ interactions: type: label type: attribute - attributes: - title: Type - description: Type - tags: - - Campaign channels areRelationsValid: true + description: Type sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type @@ -555,139 +520,140 @@ interactions: type: attribute included: - attributes: - title: Product name description: Product name - tags: - - Products primary: true sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name valueType: TEXT id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_name type: label - attributes: - title: Order status description: Order status - tags: - - Order lines primary: true sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status valueType: TEXT id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_status type: label - attributes: - title: Order lines + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute referenceProperties: - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - dataType: DATE - target: - id: date - type: date - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: products type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: product_id dataType: INT + isNullable: null + nullValue: null target: id: product_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: date + dataType: DATE isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: date + type: date - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__state + filterColumnDataType: STRING + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state + - filterColumn: wdf__region filterColumnDataType: STRING - - filterId: + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines type: dataset - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns primary: true sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name valueType: TEXT id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_name type: label - attributes: - title: Campaign channels + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -696,340 +662,323 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaign_channels type: dataset - attributes: - title: Date - Month/Year description: Month and Year (12/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.month type: label - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.quarter type: label - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels primary: true sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id valueType: TEXT id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channel_id type: label - attributes: - title: Date - Date description: Date - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.day type: label - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaigns type: dataset - attributes: - title: Order id description: Order id - tags: - - Order lines primary: true sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id valueType: TEXT id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_id type: label - attributes: - title: Customer name description: Customer name - tags: - - Customers primary: true sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name valueType: TEXT id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_name type: label - attributes: - title: Type description: Type - tags: - - Campaign channels primary: true sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type valueType: TEXT id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/type type: label - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers type: NORMAL id: customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/customers type: dataset - attributes: - title: Region description: Region - tags: - - Customers primary: true sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region valueType: TEXT id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/region type: label - attributes: - title: Category description: Category - tags: - - Products primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category valueType: TEXT id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/products.category type: label - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.week type: label - attributes: - title: Location description: Location - tags: - - Customers primary: false sourceColumn: geo__state__location sourceColumnDataType: STRING + tags: + - Customers + title: Location valueType: GEO id: geo__state__location links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/geo__state__location type: label - attributes: - title: Product id description: Product id - tags: - - Products primary: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id valueType: TEXT id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_id type: label - attributes: - title: Order line id description: Order line id - tags: - - Order lines primary: true sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id valueType: TEXT id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_line_id type: label - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/products type: dataset - attributes: - title: Date description: '' tags: - Date + title: Date type: DATE id: date links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/date type: dataset - attributes: - title: Category description: Category - tags: - - Campaign channels primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category valueType: TEXT id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channels.category type: label - attributes: - title: Customer id description: Customer id - tags: - - Customers primary: true sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id valueType: TEXT id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_id type: label - attributes: - title: Date - Year description: Year - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.year type: label - attributes: - title: State description: State - tags: - - Customers primary: true sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State valueType: TEXT id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/state type: label - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns primary: true sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id valueType: TEXT id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_id type: label links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1870' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -1037,9 +986,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1048,16 +995,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 + response: body: string: data: - attributes: - title: Campaign channels + areRelationsValid: true + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -1066,21 +1032,19 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - areRelationsValid: true + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: @@ -1106,31 +1070,31 @@ interactions: type: fact type: dataset - attributes: - title: Campaign channels per category + areRelationsValid: true description: Campaign channels per categories - tags: - - Campaign channels per category + precedence: 1 referenceProperties: - identifier: id: campaign_channels type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_channel_id dataType: STRING + isNullable: null + nullValue: null target: id: campaign_channel_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null sql: + dataSourceId: demo-test-ds statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category - dataSourceId: demo-test-ds - precedence: 1 - areRelationsValid: true + tags: + - Campaign channels per category + title: Campaign channels per category type: NORMAL id: campaign_channels_per_category links: @@ -1146,18 +1110,18 @@ interactions: type: aggregatedFact type: dataset - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns - areRelationsValid: true + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: @@ -1175,18 +1139,18 @@ interactions: type: attribute type: dataset - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers - areRelationsValid: true + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers type: NORMAL id: customers links: @@ -1208,11 +1172,11 @@ interactions: type: attribute type: dataset - attributes: - title: Date + areRelationsValid: true description: '' tags: - Date - areRelationsValid: true + title: Date type: DATE id: date links: @@ -1236,92 +1200,92 @@ interactions: type: attribute type: dataset - attributes: - title: Order lines + areRelationsValid: true + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute referenceProperties: - identifier: - id: date + id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - - column: date - dataType: DATE - target: - id: date - type: date + - column: campaign_id + dataType: INT isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: campaign_id + type: attribute - identifier: id: products type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: product_id dataType: INT - target: - id: product_id - type: attribute isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT target: - id: campaign_id + id: product_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: date + dataType: DATE isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - areRelationsValid: true + target: + id: date + type: date + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__state + filterColumnDataType: STRING + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state + - filterColumn: wdf__region filterColumnDataType: STRING - - filterId: + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines @@ -1346,18 +1310,18 @@ interactions: type: fact type: dataset - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products - areRelationsValid: true + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: @@ -1378,302 +1342,285 @@ interactions: type: dataset included: - attributes: - title: Product id description: Product id - tags: - - Products sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id type: attribute - attributes: - title: Budget description: Budget - tags: - - Campaign channels sourceColumn: budget sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Budget id: budget links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/budget type: fact - attributes: - title: Date - Year description: Year + granularity: YEAR tags: - Date - granularity: YEAR + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year type: attribute - attributes: - title: Product name description: Product name - tags: - - Products sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name type: attribute - attributes: - title: Date - Month/Year description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month type: attribute - attributes: - title: Category description: Category - tags: - - Products sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category type: attribute - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter type: attribute - attributes: - title: Category description: Category - tags: - - Campaign channels sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category type: attribute - attributes: - title: State description: State - tags: - - Customers sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state type: attribute - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week type: attribute - attributes: - title: Order id description: Order id - tags: - - Order lines sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id type: attribute - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name type: attribute - attributes: - title: Price description: Price - tags: - - Order lines sourceColumn: price sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Price id: price links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/price type: fact - attributes: description: Budget Agg - tags: - - Campaign channels per category + operation: SUM sourceColumn: budget sourceColumnDataType: INT - operation: SUM + tags: + - Campaign channels per category id: budget_agg links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg type: aggregatedFact - attributes: - title: Date - Date description: Date + granularity: DAY tags: - Date - granularity: DAY + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day type: attribute - attributes: - title: Region description: Region - tags: - - Customers sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region type: attribute - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id type: attribute - attributes: - title: Customer id description: Customer id - tags: - - Customers sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id type: attribute - attributes: - title: Quantity description: Quantity - tags: - - Order lines sourceColumn: quantity sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Quantity id: quantity links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/quantity type: fact - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id type: attribute - attributes: - title: Type description: Type - tags: - - Campaign channels sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type type: attribute - attributes: - title: Spend description: Spend - tags: - - Campaign channels sourceColumn: spend sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Spend id: spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/spend type: fact - attributes: - title: Order status description: Order status - tags: - - Order lines sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status type: attribute - attributes: - title: Customer name description: Customer name - tags: - - Customers sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name type: attribute - attributes: - title: Order line id description: Order line id - tags: - - Order lines sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id type: attribute links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1736' Content-Type: - application/json DATE: *id001 @@ -1684,9 +1631,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1695,18 +1640,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + response: body: string: data: - attributes: - title: '# of Active Customers' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Active Customers' id: amount_of_active_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers @@ -1716,12 +1678,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Orders' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Orders' id: amount_of_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_orders @@ -1731,13 +1693,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Top Customers' areRelationsValid: true content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Top Customers' id: amount_of_top_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers @@ -1747,14 +1709,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Valid Orders' - description: '' areRelationsValid: true content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: '# of Valid Orders' id: amount_of_valid_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders @@ -1764,12 +1726,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Campaign Spend areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Campaign Spend id: campaign_spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/campaign_spend @@ -1779,12 +1741,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Order Amount areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Order Amount id: order_amount links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/order_amount @@ -1794,12 +1756,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue' id: percent_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue @@ -1809,13 +1771,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Customers' id: percent_revenue_from_top_10_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers @@ -1825,13 +1787,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Customers' id: percent_revenue_from_top_10_percent_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers @@ -1841,13 +1803,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Products' id: percent_revenue_from_top_10_percent_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products @@ -1857,13 +1819,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Products' id: percent_revenue_from_top_10_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products @@ -1873,13 +1835,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue in Category' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue in Category' id: percent_revenue_in_category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category @@ -1889,13 +1851,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue per Product' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue per Product' id: percent_revenue_per_product links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product @@ -1905,14 +1867,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue - description: '' areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: Revenue id: revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue @@ -1922,13 +1884,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Clothing) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Clothing) id: revenue-clothing links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-clothing @@ -1938,13 +1900,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Electronic) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Electronic) id: revenue-electronic links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-electronic @@ -1954,13 +1916,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Home) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Home) id: revenue-home links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-home @@ -1970,13 +1932,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Outdoor) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Outdoor) id: revenue-outdoor links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-outdoor @@ -1986,12 +1948,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Customer areRelationsValid: true content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Customer id: revenue_per_customer links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_customer @@ -2001,12 +1963,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Dollar Spent areRelationsValid: true content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Dollar Spent id: revenue_per_dollar_spent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent @@ -2016,12 +1978,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10 areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10 id: revenue_top_10 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10 @@ -2031,12 +1993,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10% areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10% id: revenue_top_10_percent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent @@ -2046,12 +2008,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue id: total_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue @@ -2061,12 +2023,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue (No Filters) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue (No Filters) id: total_revenue-no_filters links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters @@ -2076,11 +2038,40 @@ interactions: originType: NATIVE type: metric links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1089' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/computeValidObjects body: afm: attributes: [] @@ -2088,12 +2079,12 @@ interactions: measures: - definition: measure: + computeRatio: false + filters: [] item: identifier: id: campaign_spend type: metric - computeRatio: false - filters: [] localIdentifier: campaign_spend types: - facts @@ -2110,40 +2101,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/afm/computeValidObjects response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: items: @@ -2213,3 +2173,35 @@ interactions: type: metric - id: total_revenue type: metric + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '269' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_aggregated_facts.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_aggregated_facts.yaml index d9e5550b1..55bc22a61 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_aggregated_facts.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_aggregated_facts.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=0&size=500 body: null headers: Accept: @@ -14,15 +11,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + areRelationsValid: true + description: Budget Agg + operation: SUM + sourceColumn: budget + sourceColumnDataType: INT + tags: + - Campaign channels per category + id: budget_agg + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg + meta: + origin: + originId: demo + originType: NATIVE + type: aggregatedFact + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '705' Content-Type: @@ -36,35 +52,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - description: Budget Agg - tags: - - Campaign channels per category - sourceColumn: budget - sourceColumnDataType: INT - areRelationsValid: true - operation: SUM - id: budget_agg - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg - meta: - origin: - originId: demo - originType: NATIVE - type: aggregatedFact - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml index bb52f85f8..bffd9f6a5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_attributes.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 body: null headers: Accept: @@ -14,52 +11,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels areRelationsValid: true + description: Campaign channel id sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id @@ -74,13 +39,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Campaign channels areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category @@ -95,13 +60,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns areRelationsValid: true + description: Campaign id sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id @@ -116,13 +81,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns areRelationsValid: true + description: Campaign name sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name @@ -137,13 +102,13 @@ interactions: type: label type: attribute - attributes: - title: Customer id - description: Customer id - tags: - - Customers areRelationsValid: true + description: Customer id sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id @@ -158,13 +123,13 @@ interactions: type: label type: attribute - attributes: - title: Customer name - description: Customer name - tags: - - Customers areRelationsValid: true + description: Customer name sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name @@ -179,12 +144,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Date + areRelationsValid: true description: Date + granularity: DAY tags: - Date - granularity: DAY - areRelationsValid: true + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day @@ -199,12 +164,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Month/Year + areRelationsValid: true description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH - areRelationsValid: true + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month @@ -219,12 +184,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Quarter/Year + areRelationsValid: true description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER - areRelationsValid: true + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter @@ -239,12 +204,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Week/Year + areRelationsValid: true description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK - areRelationsValid: true + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week @@ -259,12 +224,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Year + areRelationsValid: true description: Year + granularity: YEAR tags: - Date - granularity: YEAR - areRelationsValid: true + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year @@ -279,13 +244,13 @@ interactions: type: label type: attribute - attributes: - title: Order id - description: Order id - tags: - - Order lines areRelationsValid: true + description: Order id sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id @@ -300,13 +265,13 @@ interactions: type: label type: attribute - attributes: - title: Order line id - description: Order line id - tags: - - Order lines areRelationsValid: true + description: Order line id sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id @@ -321,13 +286,13 @@ interactions: type: label type: attribute - attributes: - title: Order status - description: Order status - tags: - - Order lines areRelationsValid: true + description: Order status sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status @@ -342,13 +307,13 @@ interactions: type: label type: attribute - attributes: - title: Product id - description: Product id - tags: - - Products areRelationsValid: true + description: Product id sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id @@ -363,13 +328,13 @@ interactions: type: label type: attribute - attributes: - title: Product name - description: Product name - tags: - - Products areRelationsValid: true + description: Product name sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name @@ -384,13 +349,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Products areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category @@ -405,13 +370,13 @@ interactions: type: label type: attribute - attributes: - title: Region - description: Region - tags: - - Customers areRelationsValid: true + description: Region sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region @@ -426,13 +391,13 @@ interactions: type: label type: attribute - attributes: - title: State - description: State - tags: - - Customers areRelationsValid: true + description: State sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state @@ -443,19 +408,19 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label type: attribute - attributes: - title: Type - description: Type - tags: - - Campaign channels areRelationsValid: true + description: Type sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type @@ -471,268 +436,301 @@ interactions: type: attribute included: - attributes: - title: Product name description: Product name - tags: - - Products primary: true sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name valueType: TEXT id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_name type: label - attributes: - title: Order status description: Order status - tags: - - Order lines primary: true sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status valueType: TEXT id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_status type: label - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns primary: true sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name valueType: TEXT id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_name type: label - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.week type: label - attributes: - title: Location description: Location - tags: - - Customers primary: false sourceColumn: geo__state__location sourceColumnDataType: STRING + tags: + - Customers + title: Location valueType: GEO id: geo__state__location links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/geo__state__location type: label - attributes: - title: Product id description: Product id - tags: - - Products primary: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id valueType: TEXT id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_id type: label - attributes: - title: Order line id description: Order line id - tags: - - Order lines primary: true sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id valueType: TEXT id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_line_id type: label - attributes: - title: Date - Month/Year description: Month and Year (12/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.month type: label - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.quarter type: label - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels primary: true sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id valueType: TEXT id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channel_id type: label - attributes: - title: Date - Date description: Date - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.day type: label - attributes: - title: Order id description: Order id - tags: - - Order lines primary: true sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id valueType: TEXT id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_id type: label - attributes: - title: Category description: Category - tags: - - Campaign channels primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category valueType: TEXT id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channels.category type: label - attributes: - title: Customer name description: Customer name - tags: - - Customers primary: true sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name valueType: TEXT id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_name type: label - attributes: - title: Type description: Type - tags: - - Campaign channels primary: true sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type valueType: TEXT id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/type type: label - attributes: - title: Region description: Region - tags: - - Customers primary: true sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region valueType: TEXT id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/region type: label - attributes: - title: Customer id description: Customer id - tags: - - Customers primary: true sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id valueType: TEXT id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_id type: label - attributes: - title: Date - Year description: Year - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.year type: label - attributes: - title: State description: State - tags: - - Customers primary: true sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State valueType: TEXT id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/state type: label - attributes: - title: Category description: Category - tags: - - Products primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category valueType: TEXT id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/products.category type: label - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns primary: true sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id valueType: TEXT id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_id type: label links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1335' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml index a4afed4e3..4b5da5e90 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_facts.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts?page=0&size=500 body: null headers: Accept: @@ -14,52 +11,20 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts?page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: Budget + areRelationsValid: true description: Budget - tags: - - Campaign channels sourceColumn: budget sourceColumnDataType: NUMERIC - areRelationsValid: true + tags: + - Campaign channels + title: Budget id: budget links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/budget @@ -69,13 +34,13 @@ interactions: originType: NATIVE type: fact - attributes: - title: Price + areRelationsValid: true description: Price - tags: - - Order lines sourceColumn: price sourceColumnDataType: NUMERIC - areRelationsValid: true + tags: + - Order lines + title: Price id: price links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/price @@ -85,13 +50,13 @@ interactions: originType: NATIVE type: fact - attributes: - title: Quantity + areRelationsValid: true description: Quantity - tags: - - Order lines sourceColumn: quantity sourceColumnDataType: NUMERIC - areRelationsValid: true + tags: + - Order lines + title: Quantity id: quantity links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/quantity @@ -101,13 +66,13 @@ interactions: originType: NATIVE type: fact - attributes: - title: Spend + areRelationsValid: true description: Spend - tags: - - Campaign channels sourceColumn: spend sourceColumnDataType: NUMERIC - areRelationsValid: true + tags: + - Campaign channels + title: Spend id: spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/spend @@ -117,5 +82,38 @@ interactions: originType: NATIVE type: fact links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '372' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml index 8f09bf9e9..b3da87c44 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_labels.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels?page=0&size=500 body: null headers: Accept: @@ -14,54 +11,22 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels?page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: Campaign channel id + areRelationsValid: true description: Campaign channel id - tags: - - Campaign channels primary: true sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id valueType: TEXT - areRelationsValid: true id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channel_id @@ -71,15 +36,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Category + areRelationsValid: true description: Category - tags: - - Campaign channels primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category valueType: TEXT - areRelationsValid: true id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channels.category @@ -89,15 +54,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Campaign id + areRelationsValid: true description: Campaign id - tags: - - Campaigns primary: true sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id valueType: TEXT - areRelationsValid: true id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_id @@ -107,15 +72,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Campaign name + areRelationsValid: true description: Campaign name - tags: - - Campaigns primary: true sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name valueType: TEXT - areRelationsValid: true id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_name @@ -125,15 +90,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Customer id + areRelationsValid: true description: Customer id - tags: - - Customers primary: true sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id valueType: TEXT - areRelationsValid: true id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_id @@ -143,15 +108,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Customer name + areRelationsValid: true description: Customer name - tags: - - Customers primary: true sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name valueType: TEXT - areRelationsValid: true id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_name @@ -161,13 +126,13 @@ interactions: originType: NATIVE type: label - attributes: - title: Date - Date + areRelationsValid: true description: Date - tags: - - Date primary: true sourceColumn: '' - areRelationsValid: true + tags: + - Date + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.day @@ -177,13 +142,13 @@ interactions: originType: NATIVE type: label - attributes: - title: Date - Month/Year + areRelationsValid: true description: Month and Year (12/2020) - tags: - - Date primary: true sourceColumn: '' - areRelationsValid: true + tags: + - Date + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.month @@ -193,13 +158,13 @@ interactions: originType: NATIVE type: label - attributes: - title: Date - Quarter/Year + areRelationsValid: true description: Quarter and Year (Q1/2020) - tags: - - Date primary: true sourceColumn: '' - areRelationsValid: true + tags: + - Date + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.quarter @@ -209,13 +174,13 @@ interactions: originType: NATIVE type: label - attributes: - title: Date - Week/Year + areRelationsValid: true description: Week and Year (W52/2020) - tags: - - Date primary: true sourceColumn: '' - areRelationsValid: true + tags: + - Date + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.week @@ -225,13 +190,13 @@ interactions: originType: NATIVE type: label - attributes: - title: Date - Year + areRelationsValid: true description: Year - tags: - - Date primary: true sourceColumn: '' - areRelationsValid: true + tags: + - Date + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.year @@ -241,15 +206,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Location + areRelationsValid: true description: Location - tags: - - Customers primary: false sourceColumn: geo__state__location sourceColumnDataType: STRING + tags: + - Customers + title: Location valueType: GEO - areRelationsValid: true id: geo__state__location links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/geo__state__location @@ -259,15 +224,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Order id + areRelationsValid: true description: Order id - tags: - - Order lines primary: true sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id valueType: TEXT - areRelationsValid: true id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_id @@ -277,15 +242,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Order line id + areRelationsValid: true description: Order line id - tags: - - Order lines primary: true sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id valueType: TEXT - areRelationsValid: true id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_line_id @@ -295,15 +260,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Order status + areRelationsValid: true description: Order status - tags: - - Order lines primary: true sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status valueType: TEXT - areRelationsValid: true id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_status @@ -313,15 +278,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Product id + areRelationsValid: true description: Product id - tags: - - Products primary: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id valueType: TEXT - areRelationsValid: true id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_id @@ -331,15 +296,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Product name + areRelationsValid: true description: Product name - tags: - - Products primary: true sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name valueType: TEXT - areRelationsValid: true id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_name @@ -349,15 +314,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Category + areRelationsValid: true description: Category - tags: - - Products primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category valueType: TEXT - areRelationsValid: true id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/products.category @@ -367,15 +332,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Region + areRelationsValid: true description: Region - tags: - - Customers primary: true sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region valueType: TEXT - areRelationsValid: true id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/region @@ -385,15 +350,15 @@ interactions: originType: NATIVE type: label - attributes: - title: State + areRelationsValid: true description: State - tags: - - Customers primary: true sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State valueType: TEXT - areRelationsValid: true id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/state @@ -403,15 +368,15 @@ interactions: originType: NATIVE type: label - attributes: - title: Type + areRelationsValid: true description: Type - tags: - - Campaign channels primary: true sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type valueType: TEXT - areRelationsValid: true id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/type @@ -421,5 +386,38 @@ interactions: originType: NATIVE type: label links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '802' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml index ae0394f4e..6d3ac5107 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 body: null headers: Accept: @@ -14,51 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: - attributes: - title: '# of Active Customers' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Active Customers' id: amount_of_active_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers @@ -68,12 +33,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Orders' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Orders' id: amount_of_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_orders @@ -83,13 +48,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Top Customers' areRelationsValid: true content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Top Customers' id: amount_of_top_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers @@ -99,14 +64,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Valid Orders' - description: '' areRelationsValid: true content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: '# of Valid Orders' id: amount_of_valid_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders @@ -116,12 +81,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Campaign Spend areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Campaign Spend id: campaign_spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/campaign_spend @@ -131,12 +96,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Order Amount areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Order Amount id: order_amount links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/order_amount @@ -146,12 +111,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue' id: percent_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue @@ -161,13 +126,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Customers' id: percent_revenue_from_top_10_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers @@ -177,13 +142,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Customers' id: percent_revenue_from_top_10_percent_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers @@ -193,13 +158,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Products' id: percent_revenue_from_top_10_percent_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products @@ -209,13 +174,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Products' id: percent_revenue_from_top_10_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products @@ -225,13 +190,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue in Category' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue in Category' id: percent_revenue_in_category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category @@ -241,13 +206,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue per Product' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue per Product' id: percent_revenue_per_product links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product @@ -257,14 +222,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue - description: '' areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: Revenue id: revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue @@ -274,13 +239,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Clothing) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Clothing) id: revenue-clothing links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-clothing @@ -290,13 +255,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Electronic) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Electronic) id: revenue-electronic links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-electronic @@ -306,13 +271,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Home) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Home) id: revenue-home links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-home @@ -322,13 +287,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Outdoor) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Outdoor) id: revenue-outdoor links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-outdoor @@ -338,12 +303,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Customer areRelationsValid: true content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Customer id: revenue_per_customer links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_customer @@ -353,12 +318,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Dollar Spent areRelationsValid: true content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Dollar Spent id: revenue_per_dollar_spent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent @@ -368,12 +333,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10 areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10 id: revenue_top_10 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10 @@ -383,12 +348,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10% areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10% id: revenue_top_10_percent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent @@ -398,12 +363,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue id: total_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue @@ -413,12 +378,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue (No Filters) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue (No Filters) id: total_revenue-no_filters links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters @@ -428,5 +393,38 @@ interactions: originType: NATIVE type: metric links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1089' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml index 3ee85f6b9..4c2743e42 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,46 +25,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -148,143 +113,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -309,19 +274,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -329,15 +294,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -807,9 +772,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1372,3 +1337,36 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model_child.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model_child.yaml index c8eb5ab6c..528bf4825 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model_child.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model_child.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,15 +11,29 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_west/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK + body: + string: + analytics: + analyticalDashboardExtensions: + - id: campaign + permissions: + - assigneeRule: + type: allWorkspaceUsers + name: VIEW + analyticalDashboards: [] + attributeHierarchies: [] + dashboardPlugins: [] + exportDefinitions: [] + filterContexts: [] + memoryItems: [] + metrics: [] + visualizationObjects: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '316' Content-Type: @@ -36,30 +47,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - analytics: - analyticalDashboardExtensions: - - id: campaign - permissions: - - assigneeRule: - type: allWorkspaceUsers - name: VIEW - analyticalDashboards: [] - attributeHierarchies: [] - dashboardPlugins: [] - exportDefinitions: [] - filterContexts: [] - memoryItems: [] - metrics: [] - visualizationObjects: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml index 0232a06d7..b88134a68 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -416,3 +381,36 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml index 1a546fa32..ed10d09c5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/dependentEntitiesGraph body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/dependentEntitiesGraph response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: graph: @@ -69,10 +34,6 @@ interactions: type: attribute - id: campaigns type: dataset - - - id: customer_id - type: attribute - - id: revenue_per_customer - type: metric - - id: customer_id type: attribute - id: amount_of_active_customers @@ -81,10 +42,6 @@ interactions: type: attribute - id: percent_revenue_from_top_10_percent_customers type: metric - - - id: customer_id - type: attribute - - id: customers - type: dataset - - id: customer_id type: attribute - id: amount_of_top_customers @@ -93,6 +50,14 @@ interactions: type: attribute - id: percent_revenue_from_top_10_customers type: metric + - - id: customer_id + type: attribute + - id: customers + type: dataset + - - id: customer_id + type: attribute + - id: revenue_per_customer + type: metric - - id: customer_name type: attribute - id: customers @@ -113,22 +78,22 @@ interactions: type: attribute - id: date type: dataset - - - id: date.year - type: attribute - - id: date - type: dataset - - id: date.year type: attribute - id: product_revenue_comparison-over_previous_period type: visualizationObject - - - id: order_id + - - id: date.year type: attribute - - id: amount_of_orders - type: metric + - id: date + type: dataset - - id: order_id type: attribute - id: order_lines type: dataset + - - id: order_id + type: attribute + - id: amount_of_orders + type: metric - - id: order_line_id type: attribute - id: amount_of_active_customers @@ -143,19 +108,19 @@ interactions: type: dataset - - id: product_id type: attribute - - id: products - type: dataset + - id: percent_revenue_from_top_10_products + type: metric - - id: product_id type: attribute - - id: percent_revenue_from_top_10_percent_products - type: metric + - id: products + type: dataset - - id: product_id type: attribute - - id: percent_revenue_from_top_10_products + - id: percent_revenue_per_product type: metric - - id: product_id type: attribute - - id: percent_revenue_per_product + - id: percent_revenue_from_top_10_percent_products type: metric - - id: product_name type: attribute @@ -191,31 +156,27 @@ interactions: type: dataset - - id: campaigns type: dataset - - id: campaign_channels + - id: order_lines type: dataset - - id: campaigns type: dataset - - id: order_lines + - id: campaign_channels type: dataset - - id: customers type: dataset - id: order_lines type: dataset - - - id: date - type: dataset - - id: revenue_by_category_trend - type: visualizationObject - - id: date type: dataset - id: percentage_of_customers_by_region type: visualizationObject - - id: date type: dataset - - id: order_lines - type: dataset + - id: product_revenue_comparison-over_previous_period + type: visualizationObject - - id: date type: dataset - - id: product_revenue_comparison-over_previous_period + - id: customers_trend type: visualizationObject - - id: date type: dataset @@ -223,12 +184,16 @@ interactions: type: visualizationObject - - id: date type: dataset - - id: product_and_category - type: analyticalDashboard + - id: order_lines + type: dataset - - id: date type: dataset - - id: customers_trend + - id: revenue_by_category_trend type: visualizationObject + - - id: date + type: dataset + - id: product_and_category + type: analyticalDashboard - - id: products type: dataset - id: order_lines @@ -237,6 +202,10 @@ interactions: type: fact - id: campaign_channels type: dataset + - - id: price + type: fact + - id: revenue_and_quantity_by_product_and_category + type: visualizationObject - - id: price type: fact - id: order_lines @@ -245,7 +214,7 @@ interactions: type: fact - id: order_amount type: metric - - - id: price + - - id: quantity type: fact - id: revenue_and_quantity_by_product_and_category type: visualizationObject @@ -257,10 +226,6 @@ interactions: type: fact - id: order_amount type: metric - - - id: quantity - type: fact - - id: revenue_and_quantity_by_product_and_category - type: visualizationObject - - id: spend type: fact - id: campaign_spend @@ -273,21 +238,21 @@ interactions: type: label - id: campaign_channel_id type: attribute - - - id: campaign_channels.category - type: label - - id: campaign_channels.category - type: attribute - - id: campaign_channels.category type: label - id: campaign_spend type: visualizationObject + - - id: campaign_channels.category + type: label + - id: campaign_channels.category + type: attribute - - id: campaign_id type: label - id: campaign_id type: attribute - - id: campaign_name type: label - - id: revenue_per_usd_vs_spend_by_campaign + - id: campaign_spend type: visualizationObject - - id: campaign_name type: label @@ -299,12 +264,16 @@ interactions: type: attribute - - id: campaign_name type: label - - id: campaign_spend + - id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - - id: customer_id type: label - id: customer_id type: attribute + - - id: customer_name + type: label + - id: revenue_and_quantity_by_product_and_category + type: visualizationObject - - id: customer_name type: label - id: customer_name @@ -313,10 +282,6 @@ interactions: type: label - id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - - - id: customer_name - type: label - - id: revenue_and_quantity_by_product_and_category - type: visualizationObject - - id: customer_name type: label - id: top_10_customers @@ -327,23 +292,23 @@ interactions: type: attribute - - id: date.month type: label - - id: revenue_by_category_trend + - id: percentage_of_customers_by_region type: visualizationObject - - id: date.month type: label - - id: date.month - type: attribute + - id: customers_trend + type: visualizationObject - - id: date.month type: label - - id: revenue_trend + - id: revenue_by_category_trend type: visualizationObject - - id: date.month type: label - - id: customers_trend - type: visualizationObject + - id: date.month + type: attribute - - id: date.month type: label - - id: percentage_of_customers_by_region + - id: revenue_trend type: visualizationObject - - id: date.quarter type: label @@ -369,14 +334,14 @@ interactions: type: label - id: order_line_id type: attribute - - - id: order_status - type: label - - id: order_status - type: attribute - - id: order_status type: label - id: revenue type: metric + - - id: order_status + type: label + - id: order_status + type: attribute - - id: order_status type: label - id: amount_of_valid_orders @@ -387,31 +352,31 @@ interactions: type: attribute - - id: product_name type: label - - id: product_breakdown + - id: product_revenue_comparison-over_previous_period type: visualizationObject - - id: product_name type: label - - id: percent_revenue_per_product_by_customer_and_category + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: product_name type: label - - id: product_name - type: attribute + - id: product_saleability + type: visualizationObject - - id: product_name type: label - - id: product_saleability + - id: revenue_by_product type: visualizationObject - - id: product_name type: label - - id: product_revenue_comparison-over_previous_period + - id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - - id: product_name type: label - - id: revenue_and_quantity_by_product_and_category + - id: product_breakdown type: visualizationObject - - id: product_name type: label - - id: revenue_by_product + - id: top_10_products type: visualizationObject - - id: product_name type: label @@ -419,35 +384,31 @@ interactions: type: visualizationObject - - id: product_name type: label - - id: top_10_products - type: visualizationObject + - id: product_name + type: attribute - - id: products.category type: label - - id: product_breakdown + - id: product_revenue_comparison-over_previous_period type: visualizationObject - - id: products.category type: label - - id: revenue-clothing + - id: revenue-home type: metric - - id: products.category type: label - - id: revenue_by_category_trend + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: products.category type: label - - id: revenue-electronic - type: metric + - id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject - - id: products.category type: label - id: products.category type: attribute - - id: products.category type: label - - id: percent_revenue_per_product_by_customer_and_category - type: visualizationObject - - - id: products.category - type: label - - id: revenue-home + - id: revenue-electronic type: metric - - id: products.category type: label @@ -455,28 +416,32 @@ interactions: type: metric - - id: products.category type: label - - id: product_revenue_comparison-over_previous_period + - id: product_breakdown type: visualizationObject - - id: products.category type: label - - id: revenue_and_quantity_by_product_and_category + - id: revenue_by_category_trend type: visualizationObject - - id: products.category type: label - - id: product_categories_pie_chart + - id: top_10_products type: visualizationObject - - id: products.category type: label - - id: top_10_products + - id: product_categories_pie_chart type: visualizationObject - - - id: region + - - id: products.category type: label - - id: region - type: attribute + - id: revenue-clothing + type: metric - - id: region type: label - id: percentage_of_customers_by_region type: visualizationObject + - - id: region + type: label + - id: region + type: attribute - - id: region type: label - id: region_filter @@ -489,18 +454,14 @@ interactions: type: label - id: top_10_customers type: visualizationObject - - - id: type - type: label - - id: type - type: attribute - - id: type type: label - id: campaign_spend type: visualizationObject - - - id: amount_of_active_customers - type: metric - - id: customers_trend - type: visualizationObject + - - id: type + type: label + - id: type + type: attribute - - id: amount_of_active_customers type: metric - id: amount_of_top_customers @@ -509,6 +470,10 @@ interactions: type: metric - id: percentage_of_customers_by_region type: visualizationObject + - - id: amount_of_active_customers + type: metric + - id: customers_trend + type: visualizationObject - - id: amount_of_orders type: metric - id: amount_of_valid_orders @@ -523,7 +488,7 @@ interactions: type: visualizationObject - - id: campaign_spend type: metric - - id: revenue_per_usd_vs_spend_by_campaign + - id: campaign_spend type: visualizationObject - - id: campaign_spend type: metric @@ -531,7 +496,7 @@ interactions: type: metric - - id: campaign_spend type: metric - - id: campaign_spend + - id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - - id: order_amount type: metric @@ -547,15 +512,19 @@ interactions: type: visualizationObject - - id: revenue type: metric - - id: revenue-clothing - type: metric + - id: product_revenue_comparison-over_previous_period + type: visualizationObject - - id: revenue type: metric - id: revenue_top_10 type: metric - - id: revenue type: metric - - id: percent_revenue_per_product_by_customer_and_category + - id: revenue-home + type: metric + - - id: revenue + type: metric + - id: product_saleability type: visualizationObject - - id: revenue type: metric @@ -563,16 +532,16 @@ interactions: type: metric - - id: revenue type: metric - - id: revenue-home + - id: percent_revenue_from_top_10_products type: metric - - id: revenue type: metric - - id: percent_revenue_from_top_10_percent_products + - id: percent_revenue_from_top_10_customers type: metric - - id: revenue type: metric - - id: product_saleability - type: visualizationObject + - id: revenue-electronic + type: metric - - id: revenue type: metric - id: revenue-outdoor @@ -583,55 +552,43 @@ interactions: type: metric - - id: revenue type: metric - - id: revenue_per_dollar_spent - type: metric - - - id: revenue - type: metric - - id: revenue_trend + - id: product_breakdown type: visualizationObject - - id: revenue type: metric - - id: percent_revenue - type: metric - - - id: revenue - type: metric - - id: revenue_by_product + - id: revenue_by_category_trend type: visualizationObject - - id: revenue type: metric - - id: percent_revenue_from_top_10_customers + - id: revenue_per_dollar_spent type: metric - - id: revenue type: metric - - id: revenue_top_10_percent + - id: total_revenue type: metric - - id: revenue type: metric - - id: product_categories_pie_chart - type: visualizationObject + - id: percent_revenue_from_top_10_percent_products + type: metric - - id: revenue type: metric - - id: total_revenue + - id: revenue-clothing type: metric - - id: revenue type: metric - - id: product_breakdown - type: visualizationObject - - - id: revenue + - id: percent_revenue type: metric - - id: revenue_by_category_trend - type: visualizationObject - - id: revenue type: metric - - id: revenue-electronic + - id: percent_revenue_from_top_10_percent_customers type: metric - - id: revenue type: metric - - id: percent_revenue_from_top_10_percent_customers + - id: amount_of_top_customers type: metric - - id: revenue type: metric - - id: percent_revenue_from_top_10_products + - id: revenue_top_10_percent type: metric - - id: revenue type: metric @@ -639,16 +596,24 @@ interactions: type: metric - - id: revenue type: metric - - id: product_revenue_comparison-over_previous_period + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: revenue type: metric - - id: revenue_and_quantity_by_product_and_category + - id: revenue_by_product type: visualizationObject - - id: revenue type: metric - - id: amount_of_top_customers + - id: revenue_trend + type: visualizationObject + - - id: revenue type: metric + - id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject + - - id: revenue + type: metric + - id: product_categories_pie_chart + type: visualizationObject - - id: revenue_per_customer type: metric - id: customers_trend @@ -659,19 +624,19 @@ interactions: type: visualizationObject - - id: revenue_top_10 type: metric - - id: percent_revenue_from_top_10_customers + - id: percent_revenue_from_top_10_products type: metric - - id: revenue_top_10 type: metric - - id: percent_revenue_from_top_10_products + - id: percent_revenue_from_top_10_customers type: metric - - id: revenue_top_10 type: metric - - id: top_10_customers + - id: top_10_products type: visualizationObject - - id: revenue_top_10 type: metric - - id: top_10_products + - id: top_10_customers type: visualizationObject - - id: revenue_top_10_percent type: metric @@ -723,19 +688,19 @@ interactions: type: analyticalDashboard - - id: top_10_products type: visualizationObject - - id: dashboard_plugin + - id: product_and_category type: analyticalDashboard - - id: top_10_products type: visualizationObject - - id: product_and_category + - id: dashboard_plugin type: analyticalDashboard - - id: campaign_name_filter type: filterContext - - id: campaign + - id: dashboard_plugin type: analyticalDashboard - - id: campaign_name_filter type: filterContext - - id: dashboard_plugin + - id: campaign type: analyticalDashboard - - id: region_filter type: filterContext @@ -1036,3 +1001,36 @@ interactions: - id: region_filter title: filterContext type: filterContext + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml index 6dcf93052..c489c7d65 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/dependentEntitiesGraph body: identifiers: - id: campaign_channel_id @@ -19,15 +16,34 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/dependentEntitiesGraph response: - status: - code: 200 - message: OK + body: + string: + graph: + edges: + - - id: campaign_channel_id + type: attribute + - id: campaign_channels + type: dataset + - - id: campaign_channels + type: dataset + - id: campaign_channels_per_category + type: dataset + nodes: + - id: campaign_channel_id + title: Campaign channel id + type: attribute + - id: campaign_channels + title: Campaign channels + type: dataset + - id: campaign_channels_per_category + title: Campaign channels per category + type: dataset headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '476' Content-Type: @@ -41,35 +57,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - graph: - edges: - - - id: campaign_channel_id - type: attribute - - id: campaign_channels - type: dataset - - - id: campaign_channels - type: dataset - - id: campaign_channels_per_category - type: dataset - nodes: - - id: campaign_channel_id - title: Campaign channel id - type: attribute - - id: campaign_channels - title: Campaign channels - type: dataset - - id: campaign_channels_per_category - title: Campaign channels per category - type: dataset + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml index b7b56943d..7fce5a1cf 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7ea24d1eb0e200880690970ac2cc headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: a63b4b8178a2dc022556694b2d9b342d + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_testing - type: workspace attributes: name: demo_testing + id: demo_testing + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: demo_testing + id: demo_testing + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '204' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo_testing - id: demo_testing - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -523,30 +487,13 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '671' + - '1167' Content-Type: - application/json DATE: *id001 @@ -557,238 +504,332 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 + response: body: string: data: - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD name: demo-test-ds - type: POSTGRESQL schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres id: demo-test-ds links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds type: dataSource links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '671' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -799,142 +840,94 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region - dataType: STRING name: wdf__state - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -944,10 +937,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -957,15 +949,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -974,21 +965,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 body: null headers: Accept: @@ -999,15 +990,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: + - attributes: + alternativeDataSourceId: ds-put-abc-id + authenticationType: USERNAME_PASSWORD + name: demo-test-ds + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer + username: postgres + id: demo-test-ds + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds + type: dataSource + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '671' Content-Type: @@ -1020,384 +1026,369 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - url: jdbc:postgresql://postgresql-ha-pgpool.postgresql-ha/tiger_tests?sslmode=prefer - username: postgres - authenticationType: USERNAME_PASSWORD - alternativeDataSourceId: ds-put-abc-id - name: demo-test-ds - type: POSTGRESQL - schema: demo - id: demo-test-ds - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-test-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines + title: Customers + - aggregatedFacts: [] attributes: - - id: order_id + - description: Order id + id: order_id labels: [] sourceColumn: order_id - title: Order id sourceColumnDataType: STRING - description: Order id tags: - Order lines - - id: order_line_id + title: Order id + - description: Order line id + id: order_line_id labels: [] sourceColumn: order_line_id - title: Order line id sourceColumnDataType: STRING - description: Order line id tags: - Order lines - - id: order_status + title: Order line id + - description: Order status + id: order_status labels: [] sourceColumn: order_status - title: Order status sourceColumnDataType: STRING - description: Order status tags: - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + path: + - demo + - order_lines + type: dataSource + description: Order lines facts: - - id: price + - description: Price + id: price sourceColumn: price - title: Price sourceColumnDataType: NUMERIC - description: Price tags: - Order lines - - id: quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity - title: Quantity sourceColumnDataType: NUMERIC - description: Quantity tags: - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -1407,10 +1398,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -1420,15 +1410,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1437,21 +1426,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: null headers: Accept: @@ -1462,40 +1451,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1857,9 +1815,38 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1140' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -1891,9 +1878,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -1905,6 +1890,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -1915,54 +1901,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -2003,200 +1989,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -2218,9 +2205,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -2276,9 +2263,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -2661,9 +2648,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3226,207 +3213,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -3437,92 +3472,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -3534,51 +3520,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -3588,10 +3575,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -3603,12 +3590,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -3622,9 +3608,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -3636,18 +3622,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -3656,12 +3642,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -3677,15 +3664,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3694,15 +3680,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml index b9d32ac8e..254c8015f 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7ea401bff40140b7ab018aad6c44 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 1fe96a2db7a7501919e8f350dac71291 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_testing - type: workspace attributes: name: demo_testing + id: demo_testing + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: demo_testing + id: demo_testing + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '204' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo_testing - id: demo_testing - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -523,210 +487,288 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -737,142 +779,94 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region - dataType: STRING name: wdf__state - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -882,10 +876,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -895,15 +888,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -912,21 +904,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -937,40 +929,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -982,46 +943,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -1070,143 +1031,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -1231,19 +1192,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -1251,15 +1212,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -1729,9 +1690,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2294,55 +2255,38 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -2351,44 +2295,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -2399,17 +2359,46 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/analyticsModel body: analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -2458,13 +2447,13 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -2643,24 +2632,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' + description: '' id: product_and_category title: Product & Category - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: [] filterContexts: - content: filters: @@ -2680,9 +2669,9 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: @@ -2696,9 +2685,10 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -2720,9 +2710,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -2777,9 +2767,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") @@ -3724,8 +3714,6 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: [] - memoryItems: [] headers: Accept-Encoding: - br, gzip, deflate @@ -3735,15 +3723,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/analyticsModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3752,21 +3739,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -3777,40 +3764,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -5134,9 +5090,38 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -5168,9 +5153,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -5182,6 +5165,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -5192,54 +5176,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -5280,200 +5264,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -5495,9 +5480,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -5553,9 +5538,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -5938,9 +5923,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -6503,207 +6488,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -6714,92 +6747,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -6811,51 +6795,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -6865,10 +6850,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -6880,12 +6865,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -6899,9 +6883,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -6913,18 +6897,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -6933,12 +6917,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -6954,15 +6939,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -6971,15 +6955,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml index ed9f96d71..c2506c64a 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7ea038d28fb147e56568e3c2d2e7 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 61f05aefbadcec24a25dda5e7d9bc910 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_testing - type: workspace attributes: name: demo_testing + id: demo_testing + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: demo_testing + id: demo_testing + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '204' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo_testing - id: demo_testing - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -523,55 +487,38 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '0' + - '1167' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -580,44 +527,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -628,362 +591,391 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines + title: Customers + - aggregatedFacts: [] attributes: - - id: order_id + - description: Order id + id: order_id labels: [] sourceColumn: order_id - title: Order id sourceColumnDataType: STRING - description: Order id tags: - Order lines - - id: order_line_id + title: Order id + - description: Order line id + id: order_line_id labels: [] sourceColumn: order_line_id - title: Order line id sourceColumnDataType: STRING - description: Order line id tags: - Order lines - - id: order_status + title: Order line id + - description: Order status + id: order_status labels: [] sourceColumn: order_status - title: Order status sourceColumnDataType: STRING - description: Order status tags: - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + path: + - demo + - order_lines + type: dataSource + description: Order lines facts: - - id: price + - description: Price + id: price sourceColumn: price - title: Price sourceColumnDataType: NUMERIC - description: Price tags: - Order lines - - id: quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity - title: Quantity sourceColumnDataType: NUMERIC - description: Quantity tags: - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -993,10 +985,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -1006,15 +997,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1023,21 +1013,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel body: null headers: Accept: @@ -1048,40 +1038,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1443,9 +1402,38 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1140' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -1477,9 +1465,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -1491,6 +1477,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -1501,54 +1488,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -1589,200 +1576,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -1804,9 +1792,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -1862,9 +1850,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -2247,9 +2235,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2812,207 +2800,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -3023,92 +3059,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -3120,51 +3107,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -3174,10 +3162,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -3189,12 +3177,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -3208,9 +3195,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -3222,18 +3209,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -3242,12 +3229,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -3263,15 +3251,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3280,15 +3267,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_ldm_and_modify_tables_columns_case.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_ldm_and_modify_tables_columns_case.yaml index 0232a06d7..b88134a68 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_ldm_and_modify_tables_columns_case.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_ldm_and_modify_tables_columns_case.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -416,3 +381,36 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml index 84cae9a03..e64adacb6 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_analytics_model?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_analytics_model?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7ea623975ddf5efde8a1171b274f headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 0d71052d5f1267fd96635c5c131df96d + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: test_put_declarative_analytics_model - type: workspace attributes: name: test_put_declarative_analytics_model + id: test_put_declarative_analytics_model + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: test_put_declarative_analytics_model + id: test_put_declarative_analytics_model + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_analytics_model headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '276' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: test_put_declarative_analytics_model - id: test_put_declarative_analytics_model - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_analytics_model + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -523,356 +487,386 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: + 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 - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region - dataType: STRING name: wdf__state - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -882,10 +876,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -895,15 +888,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -912,21 +904,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel body: null headers: Accept: @@ -937,15 +929,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel response: - status: - code: 200 - message: OK + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: [] + attributeHierarchies: [] + dashboardPlugins: [] + exportDefinitions: [] + filterContexts: [] + memoryItems: [] + metrics: [] + visualizationObjects: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '223' Content-Type: @@ -958,42 +959,32 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - analytics: - analyticalDashboardExtensions: [] - analyticalDashboards: [] - attributeHierarchies: [] - dashboardPlugins: [] - exportDefinitions: [] - filterContexts: [] - memoryItems: [] - metrics: [] - visualizationObjects: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel body: analytics: - analyticalDashboards: [] analyticalDashboardExtensions: [] + analyticalDashboards: [] attributeHierarchies: [] dashboardPlugins: [] + exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - exportDefinitions: [] - memoryItems: [] headers: Accept-Encoding: - br, gzip, deflate @@ -1003,15 +994,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1020,21 +1010,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel body: null headers: Accept: @@ -1045,15 +1035,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel response: - status: - code: 200 - message: OK + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: [] + attributeHierarchies: [] + dashboardPlugins: [] + exportDefinitions: [] + filterContexts: [] + memoryItems: [] + metrics: [] + visualizationObjects: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '223' Content-Type: @@ -1066,31 +1065,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - analytics: - analyticalDashboardExtensions: [] - analyticalDashboards: [] - attributeHierarchies: [] - dashboardPlugins: [] - exportDefinitions: [] - filterContexts: [] - memoryItems: [] - metrics: [] - visualizationObjects: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -1122,9 +1111,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -1136,6 +1123,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -1146,54 +1134,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -1234,200 +1222,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -1449,9 +1438,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -1507,9 +1496,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1892,9 +1881,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2457,207 +2446,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -2668,92 +2705,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -2765,51 +2753,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2819,10 +2808,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2834,12 +2823,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2853,9 +2841,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2867,18 +2855,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2887,12 +2875,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2908,15 +2897,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2925,15 +2913,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml index d73556f1b..e0217868b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_ldm?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_ldm?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7ea87701b60dc2080bc38fe4de42 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 7fb9c334f1b07bd75cbb9643ab6ced93 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: test_put_declarative_ldm - type: workspace attributes: name: test_put_declarative_ldm + id: test_put_declarative_ldm + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: test_put_declarative_ldm + id: test_put_declarative_ldm + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_ldm headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '240' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: test_put_declarative_ldm - id: test_put_declarative_ldm - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test_put_declarative_ldm + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -523,356 +487,386 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines + title: Customers + - aggregatedFacts: [] attributes: - - id: order_id + - description: Order id + id: order_id labels: [] sourceColumn: order_id - title: Order id sourceColumnDataType: STRING - description: Order id tags: - Order lines - - id: order_line_id + title: Order id + - description: Order line id + id: order_line_id labels: [] sourceColumn: order_line_id - title: Order line id sourceColumnDataType: STRING - description: Order line id tags: - Order lines - - id: order_status + title: Order line id + - description: Order status + id: order_status labels: [] sourceColumn: order_status - title: Order status sourceColumnDataType: STRING - description: Order status tags: - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + path: + - demo + - order_lines + type: dataSource + description: Order lines facts: - - id: price + - description: Price + id: price sourceColumn: price - title: Price sourceColumnDataType: NUMERIC - description: Price tags: - Order lines - - id: quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity - title: Quantity sourceColumnDataType: NUMERIC - description: Quantity tags: - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -882,10 +876,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -895,15 +888,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -912,21 +904,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel body: null headers: Accept: @@ -937,40 +929,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1332,9 +1293,38 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1140' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -1366,9 +1356,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -1380,6 +1368,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -1390,54 +1379,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -1478,200 +1467,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -1693,9 +1683,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -1751,9 +1741,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -2136,9 +2126,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2701,207 +2691,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -2912,92 +2950,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -3009,51 +2998,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -3063,10 +3053,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -3078,12 +3068,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -3097,9 +3086,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -3111,18 +3100,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -3131,12 +3120,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -3152,15 +3142,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3169,15 +3158,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml index c7fc1ce6c..2b11b3fc6 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,48 +25,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -144,7 +109,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -156,145 +121,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -306,7 +271,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -316,7 +281,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -329,19 +294,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -349,15 +314,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -367,7 +332,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -376,7 +341,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -386,7 +351,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -396,7 +361,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -406,7 +371,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -415,7 +380,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -424,7 +389,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -434,7 +399,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -444,7 +409,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -454,7 +419,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -464,7 +429,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -474,7 +439,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -484,7 +449,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -494,7 +459,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -505,7 +470,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -515,7 +480,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -525,7 +490,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -535,7 +500,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -544,7 +509,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -553,7 +518,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -562,7 +527,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -571,7 +536,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -580,7 +545,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -589,7 +554,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -654,7 +619,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -730,7 +695,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -809,7 +774,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -868,7 +833,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -925,7 +890,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -943,9 +908,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -978,7 +943,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1053,7 +1018,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1110,7 +1075,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1209,7 +1174,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1265,7 +1230,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1304,7 +1269,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1360,7 +1325,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1428,7 +1393,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1485,7 +1450,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1542,61 +1507,45 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user id: top_10_products title: Top 10 Products - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 + - application/json + DATE: &id001 + - PLACEHOLDER Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -1605,44 +1554,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -1653,38 +1618,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -1693,9 +1640,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1704,8 +1649,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel + response: body: string: analytics: @@ -1717,48 +1679,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1801,7 +1763,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1813,145 +1775,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1963,7 +1925,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1973,7 +1935,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -1986,19 +1948,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2006,15 +1968,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2024,7 +1986,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2033,7 +1995,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2043,7 +2005,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2053,7 +2015,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2063,7 +2025,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2072,7 +2034,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2081,7 +2043,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2091,7 +2053,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2101,7 +2063,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2111,7 +2073,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2121,7 +2083,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2131,7 +2093,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2141,7 +2103,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2151,7 +2113,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2162,7 +2124,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2172,7 +2134,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2182,7 +2144,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2192,7 +2154,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2201,7 +2163,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2210,7 +2172,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2219,7 +2181,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2228,7 +2190,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2237,7 +2199,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2246,7 +2208,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2311,7 +2273,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2387,7 +2349,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2466,7 +2428,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2525,7 +2487,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2582,7 +2544,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2600,9 +2562,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2635,7 +2597,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2710,7 +2672,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2767,7 +2729,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2866,7 +2828,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2922,7 +2884,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -2961,7 +2923,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3017,7 +2979,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3085,7 +3047,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3142,7 +3104,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user @@ -3199,61 +3161,44 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 createdBy: id: admin type: user id: top_10_products title: Top 10 Products - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -3262,44 +3207,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -3310,9 +3271,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml index 22512d62a..31752404b 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -416,55 +381,39 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '0' + - '1167' Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 + - application/json + DATE: &id001 + - PLACEHOLDER Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -473,44 +422,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -521,38 +486,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -561,9 +508,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -572,8 +517,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel + response: body: string: ldm: @@ -941,55 +903,38 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br Content-Length: - - '0' + - '1167' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -998,44 +943,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -1046,9 +1007,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/explicit_workspace_data_filter.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/explicit_workspace_data_filter.yaml index 804c954ad..4b929262e 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/explicit_workspace_data_filter.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/explicit_workspace_data_filter.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -416,216 +381,295 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers + title: Customers workspaceDataFilterReferences: - filterColumn: wdf__region filterColumnDataType: STRING filterId: id: wdf__region type: workspaceDataFilter - - grain: + - 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 @@ -636,148 +680,100 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT + tags: + - Order lines title: Order lines - description: 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: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -787,10 +783,9 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date headers: Accept-Encoding: - br, gzip, deflate @@ -800,15 +795,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -817,21 +811,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -842,40 +836,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -1249,30 +1212,13 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1168' Content-Type: - application/json DATE: *id001 @@ -1283,9 +1229,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1294,19 +1238,36 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 + response: body: string: data: - attributes: - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels areRelationsValid: true + description: Campaign channel id sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id @@ -1325,13 +1286,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Campaign channels areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category @@ -1350,13 +1311,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign id - description: Campaign id - tags: - - Campaigns areRelationsValid: true + description: Campaign id sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id @@ -1375,13 +1336,13 @@ interactions: type: label type: attribute - attributes: - title: Campaign name - description: Campaign name - tags: - - Campaigns areRelationsValid: true + description: Campaign name sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name @@ -1400,13 +1361,13 @@ interactions: type: label type: attribute - attributes: - title: Customer id - description: Customer id - tags: - - Customers areRelationsValid: true + description: Customer id sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id @@ -1425,13 +1386,13 @@ interactions: type: label type: attribute - attributes: - title: Customer name - description: Customer name - tags: - - Customers areRelationsValid: true + description: Customer name sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name @@ -1450,12 +1411,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Date + areRelationsValid: true description: Date + granularity: DAY tags: - Date - granularity: DAY - areRelationsValid: true + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day @@ -1474,12 +1435,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Month/Year + areRelationsValid: true description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH - areRelationsValid: true + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month @@ -1498,12 +1459,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Quarter/Year + areRelationsValid: true description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER - areRelationsValid: true + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter @@ -1522,12 +1483,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Week/Year + areRelationsValid: true description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK - areRelationsValid: true + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week @@ -1546,12 +1507,12 @@ interactions: type: label type: attribute - attributes: - title: Date - Year + areRelationsValid: true description: Year + granularity: YEAR tags: - Date - granularity: YEAR - areRelationsValid: true + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year @@ -1570,13 +1531,13 @@ interactions: type: label type: attribute - attributes: - title: Order id - description: Order id - tags: - - Order lines areRelationsValid: true + description: Order id sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id @@ -1595,13 +1556,13 @@ interactions: type: label type: attribute - attributes: - title: Order line id - description: Order line id - tags: - - Order lines areRelationsValid: true + description: Order line id sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id @@ -1620,13 +1581,13 @@ interactions: type: label type: attribute - attributes: - title: Order status - description: Order status - tags: - - Order lines areRelationsValid: true + description: Order status sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status @@ -1645,13 +1606,13 @@ interactions: type: label type: attribute - attributes: - title: Product id + areRelationsValid: true description: Product id - tags: - - Products - areRelationsValid: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id @@ -1670,13 +1631,13 @@ interactions: type: label type: attribute - attributes: - title: Product name - description: Product name - tags: - - Products areRelationsValid: true + description: Product name sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name @@ -1695,13 +1656,13 @@ interactions: type: label type: attribute - attributes: - title: Category - description: Category - tags: - - Products areRelationsValid: true + description: Category sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category @@ -1720,13 +1681,13 @@ interactions: type: label type: attribute - attributes: - title: Region - description: Region - tags: - - Customers areRelationsValid: true + description: Region sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region @@ -1745,13 +1706,13 @@ interactions: type: label type: attribute - attributes: - title: State - description: State - tags: - - Customers areRelationsValid: true + description: State sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state @@ -1760,29 +1721,29 @@ interactions: originId: demo originType: NATIVE relationships: - defaultView: - data: - id: state - type: label dataset: data: id: customers type: dataset + defaultView: + data: + id: state + type: label labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label type: attribute - attributes: - title: Type - description: Type - tags: - - Campaign channels areRelationsValid: true + description: Type sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type @@ -1802,36 +1763,37 @@ interactions: type: attribute included: - attributes: - title: Product name description: Product name - tags: - - Products primary: true sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name valueType: TEXT id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_name type: label - attributes: - title: Order status description: Order status - tags: - - Order lines primary: true sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status valueType: TEXT id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_status type: label - attributes: - title: Order lines + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute @@ -1840,101 +1802,101 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute + - identifier: + id: products + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: product_id + dataType: INT isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: product_id + type: attribute - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: date type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: date dataType: DATE - target: - id: date - type: date isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - dataType: INT target: - id: product_id - type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines + id: date + type: date + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region + - filterColumn: wdf__state filterColumnDataType: STRING - - filterId: + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines type: dataset - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns primary: true sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name valueType: TEXT id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_name type: label - attributes: - title: Campaign channels + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -1943,343 +1905,325 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaign_channels type: dataset - attributes: - title: Date - Month/Year description: Month and Year (12/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.month type: label - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.quarter type: label - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels primary: true sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id valueType: TEXT id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channel_id type: label - attributes: - title: Date - Date description: Date - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.day type: label - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/campaigns type: dataset - attributes: - title: Order id description: Order id - tags: - - Order lines primary: true sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id valueType: TEXT id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_id type: label - attributes: - title: Customer name description: Customer name - tags: - - Customers primary: true sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name valueType: TEXT id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_name type: label - attributes: - title: Type description: Type - tags: - - Campaign channels primary: true sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type valueType: TEXT id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/type type: label - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers + type: NORMAL workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/customers type: dataset - attributes: - title: Region description: Region - tags: - - Customers primary: true sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region valueType: TEXT id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/region type: label - attributes: - title: Category description: Category - tags: - - Products primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category valueType: TEXT id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/products.category type: label - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.week type: label - attributes: - title: Location description: Location - tags: - - Customers primary: false sourceColumn: geo__state__location sourceColumnDataType: STRING + tags: + - Customers + title: Location valueType: GEO id: geo__state__location links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/geo__state__location type: label - attributes: - title: Product id description: Product id - tags: - - Products primary: true sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id valueType: TEXT id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/product_id type: label - attributes: - title: Order line id description: Order line id - tags: - - Order lines primary: true sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id valueType: TEXT id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/order_line_id type: label - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/products type: dataset - attributes: - title: Date description: '' tags: - Date + title: Date type: DATE id: date links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/date type: dataset - attributes: - title: Category description: Category - tags: - - Campaign channels primary: true sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category valueType: TEXT id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_channels.category type: label - attributes: - title: Customer id description: Customer id - tags: - - Customers primary: true sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id valueType: TEXT id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/customer_id type: label - attributes: - title: Date - Year description: Year - tags: - - Date primary: true sourceColumn: '' + tags: + - Date + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/date.year type: label - attributes: - title: State description: State - tags: - - Customers primary: true sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State valueType: TEXT id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/state type: label - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns primary: true sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id valueType: TEXT id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/labels/campaign_id type: label links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes?include=labels%2Cdatasets&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1875' Content-Type: - application/json DATE: *id001 @@ -2290,9 +2234,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -2301,16 +2243,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 + response: body: string: data: - attributes: - title: Campaign channels + areRelationsValid: true + dataSourceTableId: demo-test-ds:campaign_channels + dataSourceTablePath: + - demo + - campaign_channels description: Campaign channels - tags: - - Campaign channels grain: - id: campaign_channel_id type: attribute @@ -2319,21 +2280,19 @@ interactions: id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_id dataType: INT + isNullable: null + nullValue: null target: id: campaign_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:campaign_channels - dataSourceTablePath: - - demo - - campaign_channels - areRelationsValid: true + tags: + - Campaign channels + title: Campaign channels type: NORMAL id: campaign_channels links: @@ -2359,31 +2318,31 @@ interactions: type: fact type: dataset - attributes: - title: Campaign channels per category + areRelationsValid: true description: Campaign channels per categories - tags: - - Campaign channels per category + precedence: 1 referenceProperties: - identifier: id: campaign_channels type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: campaign_channel_id dataType: STRING + isNullable: null + nullValue: null target: id: campaign_channel_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null sql: + dataSourceId: demo-test-ds statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category - dataSourceId: demo-test-ds - precedence: 1 - areRelationsValid: true + tags: + - Campaign channels per category + title: Campaign channels per category type: NORMAL id: campaign_channels_per_category links: @@ -2399,18 +2358,18 @@ interactions: type: aggregatedFact type: dataset - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:campaigns dataSourceTablePath: - demo - campaigns - areRelationsValid: true + description: Campaigns + grain: + - id: campaign_id + type: attribute + tags: + - Campaigns + title: Campaigns type: NORMAL id: campaigns links: @@ -2425,28 +2384,28 @@ interactions: - id: campaign_id type: attribute - id: campaign_name - type: attribute - type: dataset - - attributes: - title: Customers - description: Customers - tags: - - Customers - grain: - - id: customer_id - type: attribute + type: attribute + type: dataset + - attributes: + areRelationsValid: true dataSourceTableId: demo-test-ds:customers dataSourceTablePath: - demo - customers - areRelationsValid: true + description: Customers + grain: + - id: customer_id + type: attribute + tags: + - Customers + title: Customers + type: NORMAL workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region - filterColumnDataType: STRING - type: NORMAL id: customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/customers @@ -2467,11 +2426,11 @@ interactions: type: attribute type: dataset - attributes: - title: Date + areRelationsValid: true description: '' tags: - Date - areRelationsValid: true + title: Date type: DATE id: date links: @@ -2495,92 +2454,92 @@ interactions: type: attribute type: dataset - attributes: - title: Order lines + areRelationsValid: true + dataSourceTableId: demo-test-ds:order_lines + dataSourceTablePath: + - demo + - order_lines description: Order lines - tags: - - Order lines grain: - id: order_line_id type: attribute referenceProperties: - identifier: - id: date + id: campaigns type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - - column: date - dataType: DATE - target: - id: date - type: date + - column: campaign_id + dataType: INT isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null + target: + id: campaign_id + type: attribute - identifier: id: products type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: product_id dataType: INT - target: - id: product_id - type: attribute isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - dataType: INT target: - id: campaign_id + id: product_id type: attribute - isNullable: null - nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - identifier: id: customers type: dataset multivalue: false + sourceColumnDataTypes: null + sourceColumns: null sources: - column: customer_id dataType: INT + isNullable: null + nullValue: null target: id: customer_id type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sourceColumnDataTypes: null + sourceColumns: null + sources: + - column: date + dataType: DATE isNullable: null nullValue: null - sourceColumns: null - sourceColumnDataTypes: null - dataSourceTableId: demo-test-ds:order_lines - dataSourceTablePath: - - demo - - order_lines - areRelationsValid: true + target: + id: date + type: date + tags: + - Order lines + title: Order lines + type: NORMAL workspaceDataFilterColumns: - - name: wdf__region - dataType: STRING - - name: wdf__state - dataType: STRING + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state workspaceDataFilterReferences: - - filterId: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: id: wdf__region type: workspaceDataFilter - filterColumn: wdf__region + - filterColumn: wdf__state filterColumnDataType: STRING - - filterId: + filterId: id: wdf__state type: workspaceDataFilter - filterColumn: wdf__state - filterColumnDataType: STRING - type: NORMAL id: order_lines links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets/order_lines @@ -2605,18 +2564,18 @@ interactions: type: fact type: dataset - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute + areRelationsValid: true dataSourceTableId: demo-test-ds:products dataSourceTablePath: - demo - products - areRelationsValid: true + description: Products + grain: + - id: product_id + type: attribute + tags: + - Products + title: Products type: NORMAL id: products links: @@ -2637,302 +2596,285 @@ interactions: type: dataset included: - attributes: - title: Product id description: Product id - tags: - - Products sourceColumn: product_id sourceColumnDataType: INT + tags: + - Products + title: Product id id: product_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_id type: attribute - attributes: - title: Budget description: Budget - tags: - - Campaign channels sourceColumn: budget sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Budget id: budget links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/budget type: fact - attributes: - title: Date - Year description: Year + granularity: YEAR tags: - Date - granularity: YEAR + title: Date - Year id: date.year links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.year type: attribute - attributes: - title: Product name description: Product name - tags: - - Products sourceColumn: product_name sourceColumnDataType: STRING + tags: + - Products + title: Product name id: product_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/product_name type: attribute - attributes: - title: Date - Month/Year description: Month and Year (12/2020) + granularity: MONTH tags: - Date - granularity: MONTH + title: Date - Month/Year id: date.month links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.month type: attribute - attributes: - title: Category description: Category - tags: - - Products sourceColumn: category sourceColumnDataType: STRING + tags: + - Products + title: Category id: products.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/products.category type: attribute - attributes: - title: Date - Quarter/Year description: Quarter and Year (Q1/2020) + granularity: QUARTER tags: - Date - granularity: QUARTER + title: Date - Quarter/Year id: date.quarter links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.quarter type: attribute - attributes: - title: Category description: Category - tags: - - Campaign channels sourceColumn: category sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category id: campaign_channels.category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channels.category type: attribute - attributes: - title: State description: State - tags: - - Customers sourceColumn: state sourceColumnDataType: STRING + tags: + - Customers + title: State id: state links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/state type: attribute - attributes: - title: Date - Week/Year description: Week and Year (W52/2020) + granularity: WEEK tags: - Date - granularity: WEEK + title: Date - Week/Year id: date.week links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.week type: attribute - attributes: - title: Order id description: Order id - tags: - - Order lines sourceColumn: order_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order id id: order_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_id type: attribute - attributes: - title: Campaign name description: Campaign name - tags: - - Campaigns sourceColumn: campaign_name sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name id: campaign_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_name type: attribute - attributes: - title: Price description: Price - tags: - - Order lines sourceColumn: price sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Price id: price links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/price type: fact - attributes: description: Budget Agg - tags: - - Campaign channels per category + operation: SUM sourceColumn: budget sourceColumnDataType: INT - operation: SUM + tags: + - Campaign channels per category id: budget_agg links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/aggregatedFacts/budget_agg type: aggregatedFact - attributes: - title: Date - Date description: Date + granularity: DAY tags: - Date - granularity: DAY + title: Date - Date id: date.day links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/date.day type: attribute - attributes: - title: Region description: Region - tags: - - Customers sourceColumn: region sourceColumnDataType: STRING + tags: + - Customers + title: Region id: region links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/region type: attribute - attributes: - title: Campaign channel id description: Campaign channel id - tags: - - Campaign channels sourceColumn: campaign_channel_id sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id id: campaign_channel_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_channel_id type: attribute - attributes: - title: Customer id description: Customer id - tags: - - Customers sourceColumn: customer_id sourceColumnDataType: INT + tags: + - Customers + title: Customer id id: customer_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_id type: attribute - attributes: - title: Quantity description: Quantity - tags: - - Order lines sourceColumn: quantity sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Quantity id: quantity links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/quantity type: fact - attributes: - title: Campaign id description: Campaign id - tags: - - Campaigns sourceColumn: campaign_id sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id id: campaign_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/campaign_id type: attribute - attributes: - title: Type description: Type - tags: - - Campaign channels sourceColumn: type sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type id: type links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/type type: attribute - attributes: - title: Spend description: Spend - tags: - - Campaign channels sourceColumn: spend sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Spend id: spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/facts/spend type: fact - attributes: - title: Order status description: Order status - tags: - - Order lines sourceColumn: order_status sourceColumnDataType: STRING + tags: + - Order lines + title: Order status id: order_status links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_status type: attribute - attributes: - title: Customer name description: Customer name - tags: - - Customers sourceColumn: customer_name sourceColumnDataType: STRING + tags: + - Customers + title: Customer name id: customer_name links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/customer_name type: attribute - attributes: - title: Order line id description: Order line id - tags: - - Order lines sourceColumn: order_line_id sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id id: order_line_id links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/attributes/order_line_id type: attribute links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/datasets?include=attributes%2Cfacts%2CaggregatedFacts&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1742' Content-Type: - application/json DATE: *id001 @@ -2943,9 +2885,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -2954,18 +2894,35 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + response: body: string: data: - attributes: - title: '# of Active Customers' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Active Customers' id: amount_of_active_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_active_customers @@ -2975,12 +2932,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Orders' areRelationsValid: true content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Orders' id: amount_of_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_orders @@ -2990,13 +2947,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Top Customers' areRelationsValid: true content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '# of Top Customers' id: amount_of_top_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_top_customers @@ -3006,14 +2963,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: '# of Valid Orders' - description: '' areRelationsValid: true content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: '# of Valid Orders' id: amount_of_valid_orders links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/amount_of_valid_orders @@ -3023,12 +2980,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Campaign Spend areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Campaign Spend id: campaign_spend links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/campaign_spend @@ -3038,12 +2995,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Order Amount areRelationsValid: true content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Order Amount id: order_amount links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/order_amount @@ -3053,12 +3010,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue' id: percent_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue @@ -3068,13 +3025,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Customers' id: percent_revenue_from_top_10_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_customers @@ -3084,13 +3041,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Customers' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Customers' id: percent_revenue_from_top_10_percent_customers links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_customers @@ -3100,13 +3057,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10% Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10% Products' id: percent_revenue_from_top_10_percent_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_percent_products @@ -3116,13 +3073,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue from Top 10 Products' areRelationsValid: true 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}" - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue from Top 10 Products' id: percent_revenue_from_top_10_products links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_from_top_10_products @@ -3132,13 +3089,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue in Category' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue in Category' id: percent_revenue_in_category links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category @@ -3148,13 +3105,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: '% Revenue per Product' areRelationsValid: true content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: '% Revenue per Product' id: percent_revenue_per_product links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product @@ -3164,14 +3121,14 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue - description: '' areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + description: '' + title: Revenue id: revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue @@ -3181,13 +3138,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Clothing) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Clothing) id: revenue-clothing links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-clothing @@ -3197,13 +3154,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Electronic) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Electronic) id: revenue-electronic links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-electronic @@ -3213,13 +3170,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Home) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Home) id: revenue-home links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-home @@ -3229,13 +3186,13 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue (Outdoor) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue (Outdoor) id: revenue-outdoor links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue-outdoor @@ -3245,12 +3202,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Customer areRelationsValid: true content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Customer id: revenue_per_customer links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_customer @@ -3260,12 +3217,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue per Dollar Spent areRelationsValid: true content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue per Dollar Spent id: revenue_per_dollar_spent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent @@ -3275,12 +3232,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10 areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10 id: revenue_top_10 links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10 @@ -3290,12 +3247,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Revenue / Top 10% areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Revenue / Top 10% id: revenue_top_10_percent links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent @@ -3305,12 +3262,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue id: total_revenue links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue @@ -3320,12 +3277,12 @@ interactions: originType: NATIVE type: metric - attributes: - title: Total Revenue (No Filters) areRelationsValid: true content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:17 + createdAt: 2026-03-30 13:46 + title: Total Revenue (No Filters) id: total_revenue-no_filters links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters @@ -3335,11 +3292,40 @@ interactions: originType: NATIVE type: metric links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/metrics?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1089' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -3371,9 +3357,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -3385,6 +3369,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -3395,54 +3380,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -3483,200 +3468,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -3698,9 +3684,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -3756,9 +3742,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -4141,9 +4127,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -4706,207 +4692,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -4917,92 +4951,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -5014,51 +4999,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -5068,10 +5054,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -5083,12 +5069,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -5102,9 +5087,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -5116,18 +5101,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -5136,12 +5121,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -5157,15 +5143,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -5174,15 +5159,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/export_definition_analytics_layout.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/export_definition_analytics_layout.yaml index b25ce0330..883056eea 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/export_definition_analytics_layout.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/export_definition_analytics_layout.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,46 +25,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -148,143 +113,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -309,19 +274,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -329,15 +294,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -807,9 +772,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1372,11 +1337,42 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel body: analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -1384,54 +1380,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -1472,200 +1468,206 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset - insight: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: + - id: export_definition_id + requestPayload: + fileName: abc + format: CSV + title: export_definition_title filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -1687,9 +1689,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -1744,9 +1746,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") @@ -2126,9 +2128,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -2691,13 +2693,6 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: - - id: export_definition_id - title: export_definition_title - requestPayload: - fileName: abc - format: CSV - memoryItems: [] headers: Accept-Encoding: - br, gzip, deflate @@ -2707,15 +2702,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2724,21 +2718,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -2749,40 +2743,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/analyticsModel?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -2794,46 +2757,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -2882,143 +2845,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -3048,19 +3011,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -3068,15 +3031,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -3546,9 +3509,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -4111,9 +4074,38 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -4145,9 +4137,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -4159,6 +4149,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -4169,54 +4160,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -4257,200 +4248,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -4472,9 +4464,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -4530,9 +4522,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -4915,9 +4907,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -5480,207 +5472,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -5691,92 +5731,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -5788,51 +5779,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -5842,10 +5834,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -5857,12 +5849,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -5876,9 +5867,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -5890,18 +5881,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -5910,12 +5901,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -5931,15 +5923,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -5948,15 +5939,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/label_elements.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/label_elements.yaml index 85cbc0bd2..a99233604 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/label_elements.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/label_elements.yaml @@ -1,17 +1,14 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: - - label: order_status + - complementFilter: false + label: order_status values: - Canceled - Delivered - complementFilter: false + label: order_status validateBy: [] headers: Accept: @@ -24,15 +21,28 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: 43cdb4a41332ecb0599ff02a31c9c6d7 + elements: + - primaryTitle: Canceled + title: Canceled + - primaryTitle: Delivered + title: Delivered + paging: + count: 2 + next: null + offset: 0 + total: 2 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '261' Content-Type: @@ -46,38 +56,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Canceled - primaryTitle: Canceled - - title: Delivered - primaryTitle: Delivered - paging: - total: 2 - count: 2 - offset: 0 - next: null - cacheId: aa29ce0b0acfc72b7b488152b1dc394c + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: [] + label: order_status validateBy: - id: revenue_top_10_percent type: metric @@ -92,15 +88,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: fd18daa15af01036f31352d2d49f6dbc + elements: + - primaryTitle: Delivered + title: Delivered + paging: + count: 1 + next: null + offset: 0 + total: 1 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '214' Content-Type: @@ -113,36 +120,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Delivered - primaryTitle: Delivered - paging: - total: 1 - count: 1 - offset: 0 - next: null - cacheId: 3c7c819807baf97f6bc15e014b9139e8 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: [] + label: order_status validateBy: [] headers: Accept: @@ -155,15 +150,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: c299337763f2ca8f5ee52f30bbb03c19 + elements: + - primaryTitle: Canceled + title: Canceled + - primaryTitle: Delivered + title: Delivered + - primaryTitle: Returned + title: Returned + paging: + count: 3 + next: null + offset: 0 + total: 3 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -176,39 +186,22 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Canceled - primaryTitle: Canceled - - title: Delivered - primaryTitle: Delivered - - title: Returned - primaryTitle: Returned - paging: - total: 3 - count: 3 - offset: 0 - next: null - cacheId: 8fb034e5fd0dd18ae306dfacb1dd4f1f + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: - dateFilter: absoluteDateFilter: @@ -218,6 +211,7 @@ interactions: type: dataset from: '2150-07-01' to: '2150-07-16' + label: order_status validateBy: [] headers: Accept: @@ -230,15 +224,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: 25a987795839a97a1fe11e06edf4947a + elements: [] + paging: + count: 0 + next: null + offset: 0 + total: 0 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '166' Content-Type: @@ -251,33 +254,22 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: [] - paging: - total: 0 - count: 0 - offset: 0 - next: null - cacheId: bae075546ebbe3012d270ac44be24d3d + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: - dateFilter: relativeDateFilter: @@ -288,6 +280,7 @@ interactions: from: 3600 granularity: DAY to: 3700 + label: order_status validateBy: [] headers: Accept: @@ -300,15 +293,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: 19071cfafb60cb303f2bc6713ab9b2ad + elements: [] + paging: + count: 0 + next: null + offset: 0 + total: 0 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '166' Content-Type: @@ -321,39 +323,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: [] - paging: - total: 0 - count: 0 - offset: 0 - next: null - cacheId: 02c087ef137761b52b78cb53e865d9b2 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: - - label: order_status + - complementFilter: false + label: order_status values: - Canceled - Delivered - complementFilter: false + label: order_status validateBy: [] headers: Accept: @@ -366,15 +358,28 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: 43cdb4a41332ecb0599ff02a31c9c6d7 + elements: + - primaryTitle: Canceled + title: Canceled + - primaryTitle: Delivered + title: Delivered + paging: + count: 2 + next: null + offset: 0 + total: 2 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '261' Content-Type: @@ -387,40 +392,26 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Canceled - primaryTitle: Canceled - - title: Delivered - primaryTitle: Delivered - paging: - total: 2 - count: 2 - offset: 0 - next: null - cacheId: aa29ce0b0acfc72b7b488152b1dc394c + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: [] - validateBy: [] + label: order_status patternFilter: Deli + validateBy: [] headers: Accept: - application/json @@ -432,15 +423,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: 54fc84a980f16c579309e17f73b4cccf + elements: + - primaryTitle: Delivered + title: Delivered + paging: + count: 1 + next: null + offset: 0 + total: 1 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '214' Content-Type: @@ -453,39 +455,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Delivered - primaryTitle: Delivered - paging: - total: 1 - count: 1 - offset: 0 - next: null - cacheId: aac53166877308a6883016dcb824971b + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status + complementFilter: true dependsOn: [] - validateBy: [] + label: order_status patternFilter: Deli - complementFilter: true + validateBy: [] headers: Accept: - application/json @@ -497,15 +487,28 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: c6cc829a80ade6c02f0d8f546a9bafce + elements: + - primaryTitle: Canceled + title: Canceled + - primaryTitle: Returned + title: Returned + paging: + count: 2 + next: null + offset: 0 + total: 2 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '259' Content-Type: @@ -518,40 +521,26 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Canceled - primaryTitle: Canceled - - title: Returned - primaryTitle: Returned - paging: - total: 2 - count: 2 - offset: 0 - next: null - cacheId: efd977c2fe3f1e299ce49dd480cd6fc8 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements body: - label: order_status dependsOn: [] - validateBy: [] + label: order_status sortOrder: DESC + validateBy: [] headers: Accept: - application/json @@ -563,15 +552,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements response: - status: - code: 200 - message: OK + body: + string: + cacheId: a9431cd44dc7bb6ef241572c1cdc56a9 + elements: + - primaryTitle: Returned + title: Returned + - primaryTitle: Delivered + title: Delivered + - primaryTitle: Canceled + title: Canceled + paging: + count: 3 + next: null + offset: 0 + total: 3 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '308' Content-Type: @@ -584,40 +588,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Returned - primaryTitle: Returned - - title: Delivered - primaryTitle: Delivered - - title: Canceled - primaryTitle: Canceled - paging: - total: 3 - count: 3 - offset: 0 - next: null - cacheId: 411ad9655331584b50df58a262a29cf4 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements?offset=1&limit=1 body: - label: order_status dependsOn: [] + label: order_status validateBy: [] headers: Accept: @@ -630,15 +618,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements?offset=1&limit=1 response: - status: - code: 200 - message: OK + body: + string: + cacheId: c299337763f2ca8f5ee52f30bbb03c19 + elements: + - primaryTitle: Delivered + title: Delivered + paging: + count: 1 + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements?limit=1&offset=2 + offset: 1 + total: 3 + primaryLabel: + id: order_status + type: label headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '349' Content-Type: @@ -651,27 +650,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - primaryLabel: - id: order_status - type: label - elements: - - title: Delivered - primaryTitle: Delivered - paging: - total: 3 - count: 1 - offset: 1 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/execution/collectLabelElements?limit=1&offset=2 - cacheId: 8fb034e5fd0dd18ae306dfacb1dd4f1f + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml index cf5bd0dd6..beb9879ea 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: ldm: @@ -416,33 +381,17 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '1167' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -450,9 +399,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -461,8 +408,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/logicalModel + response: body: string: ldm: @@ -830,3 +794,35 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '1167' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/add_metadata_locale.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/add_metadata_locale.yaml index 42cf7467c..910089ff9 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/add_metadata_locale.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/add_metadata_locale.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean body: locale: fr-FR headers: @@ -15,15 +12,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -33,21 +29,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve body: locale: fr-FR headers: @@ -61,40 +57,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/xml - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: filterContext - - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve - body: - locale: fr-FR - headers: - Accept: - - application/xml - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br Content-Type: @@ -549,7 +492,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Transfer-Encoding: - chunked Vary: @@ -560,8 +503,28 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + locale: fr-FR + headers: + Accept: + - application/xml + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve + response: body: string: filterContext + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/set body: ' filterContextfilterContext. + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean body: locale: fr-FR headers: @@ -2038,15 +2027,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2055,15 +2043,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/clean_metadata_locale.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/clean_metadata_locale.yaml index 98d6c66e0..8532639f8 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/clean_metadata_locale.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/clean_metadata_locale.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/clean body: locale: fr-FR headers: @@ -15,10 +12,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -30,7 +28,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -38,12 +39,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/retrieve body: locale: fr-FR headers: @@ -57,33 +57,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '40991' - Content-Type: - - application/xml - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-Xss-Protection: - - '0' body: string: CategoryCategoryCampaign - channelsTypeTypeCampaign channelsCampaign - idCampaign - idCampaignsCampaign idCampaign idCampaignsCampaign nameCampaign nameCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateOrder idOrder idOrder @@ -183,24 +168,15 @@ interactions: id="attribute.products.category">CategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersCustomersTypeTypeCampaign channelsCampaign channelsCampaign channelsCampaign @@ -248,9 +224,6 @@ interactions: id="label.campaign_channels.category.title">CategoryCategoryCampaign channelsTypeTypeCampaign channelsCampaign idCampaign idCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersStateStateCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateLocationLocationCustomersCategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersTypeTypeCampaign channels# of Active Customers# of OrdersfilterContext - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/retrieve - body: - locale: fr-FR - headers: - Accept: - - application/xml - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '40991' + Content-Encoding: + - br Content-Type: - application/xml DATE: *id001 @@ -535,7 +491,12 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -543,7 +504,27 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + locale: fr-FR + headers: + Accept: + - application/xml + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve + response: body: string: CategoryCategoryCampaign - channelsTypeTypeCampaign channelsCampaign - idCampaign - idCampaignsCampaign idCampaign idCampaignsCampaign nameCampaign nameCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateOrder idOrder idOrder @@ -643,24 +633,15 @@ interactions: id="attribute.products.category">CategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersCustomersTypeTypeCampaign channelsCampaign channelsCampaign channelsCampaign @@ -708,9 +689,6 @@ interactions: id="label.campaign_channels.category.title">CategoryCategoryCampaign channelsTypeTypeCampaign channelsCampaign idCampaign idCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersStateStateCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateLocationLocationCustomersCategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersTypeTypeCampaign channels# of Active Customers# of OrdersfilterContext - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/set - body: ' - - CampaignCampaign.Free-form + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: ' + + CampaignCampaign.Free-form translations are marked by the ''id'' attribute, which is a hash combining the JSON path and the source text''s value. Since this hash is hard to read, the source text includes extra details about its general location.CategoryCategory.CategoryCategory.Campaign channelsCampaign - channels.TypeType.TypeType.Campaign channelsCampaign channels.Campaign idCampaign id.Campaign @@ -1059,9 +1065,25 @@ interactions: id="attribute.customer_name">Customer nameCustomer name.Customer nameCustomer name.CustomersCustomers.RegionRegion.RegionRegion.CustomersCustomers.Date + - DateDate - Date.DateDate.DateDate.Date + - Month/YearDate - Month/Year.Month and Year (12/2020)Month + and Year (12/2020).DateDate.Date + - Quarter/YearDate - Quarter/Year.Quarter and Year + (Q1/2020)Quarter and Year (Q1/2020).DateDate.Date + - Week/YearDate - Week/Year.Week and Year (W52/2020)Week + and Year (W52/2020).DateDate.Date + - YearDate - Year.YearYear.DateDate.Order idOrder id.Order idOrder id.Order @@ -1083,29 +1105,17 @@ interactions: id="attribute.products.category">CategoryCategory.CategoryCategory.ProductsProducts.Date - - DateDate - Date.DateDate.DateDate.Date - - Week/YearDate - Week/Year.Week and Year (W52/2020)Week - and Year (W52/2020).DateDate.Date - - Month/YearDate - Month/Year.Month and Year (12/2020)Month - and Year (12/2020).DateDate.Date - - Quarter/YearDate - Quarter/Year.Quarter and Year - (Q1/2020)Quarter and Year (Q1/2020).DateDate.Date - - YearDate - Year.YearYear.DateDate.RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.Campaign + id="attribute.state.tags">CustomersCustomers.TypeType.TypeType.Campaign channelsCampaign + channels.Campaign channelsCampaign channels.Campaign channelsCampaign channels.Campaign @@ -1156,9 +1166,6 @@ interactions: id="label.campaign_channels.category">CategoryCategory.CategoryCategory.Campaign channelsCampaign - channels.TypeType.TypeType.Campaign channelsCampaign channels.Campaign idCampaign id.Campaign @@ -1172,12 +1179,24 @@ interactions: id="label.customer_name">Customer nameCustomer name.Customer nameCustomer name.CustomersCustomers.RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.Date + - DateDate - Date.DateDate.DateDate.Date + - Month/YearDate - Month/Year.Month and Year (12/2020)Month + and Year (12/2020).DateDate.Date + - Quarter/YearDate - Quarter/Year.Quarter and Year (Q1/2020)Quarter + and Year (Q1/2020).DateDate.Date + - Week/YearDate - Week/Year.Week and Year (W52/2020)Week + and Year (W52/2020).DateDate.Date + - YearDate - Year.YearYear.DateDate.LocationLocation.LocationLocation.CustomersCustomers.CategoryCategory.CategoryCategory.ProductsProducts.Date - - DateDate - Date.DateDate.DateDate.Date - - Week/YearDate - Week/Year.Week and Year (W52/2020)Week - and Year (W52/2020).DateDate.Date - - Month/YearDate - Month/Year.Month and Year (12/2020)Month - and Year (12/2020).DateDate.Date - - Quarter/YearDate - Quarter/Year.Quarter and Year (Q1/2020)Quarter - and Year (Q1/2020).DateDate.Date - - YearDate - Year.YearYear.DateDate.# + id="label.region">RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.TypeType.TypeType.Campaign channelsCampaign + channels.# of Active Customers# of Active Customers.# of Orders# of Orders.CategoryCategory.Campaign channelsCampaign channels.TypeType.TypeType.Campaign channelsCampaign - channels.Campaign idCampaign - id.Campaign + id="attribute.campaign_id">Campaign + idCampaign id.Campaign idCampaign id.CampaignsCampaigns.Campaign nameCampaign name.Campaign @@ -1608,9 +1594,25 @@ interactions: id="attribute.customer_name">Customer nameCustomer name.Customer nameCustomer name.CustomersCustomers.RegionRegion.RegionRegion.CustomersCustomers.Date + - DateDate - Date.DateDate.DateDate.Date + - Month/YearDate - Month/Year.Month and Year (12/2020)Month + and Year (12/2020).DateDate.Date + - Quarter/YearDate - Quarter/Year.Quarter and Year + (Q1/2020)Quarter and Year (Q1/2020).DateDate.Date + - Week/YearDate - Week/Year.Week and Year (W52/2020)Week + and Year (W52/2020).DateDate.Date + - YearDate - Year.YearYear.DateDate.Order idOrder id.Order idOrder id.Order @@ -1632,29 +1634,17 @@ interactions: id="attribute.products.category">CategoryCategory.CategoryCategory.ProductsProducts.Date - - DateDate - Date.DateDate.DateDate.Date - - Week/YearDate - Week/Year.Week and Year (W52/2020)Week - and Year (W52/2020).DateDate.Date - - Month/YearDate - Month/Year.Month and Year (12/2020)Month - and Year (12/2020).DateDate.Date - - Quarter/YearDate - Quarter/Year.Quarter and Year - (Q1/2020)Quarter and Year (Q1/2020).DateDate.Date - - YearDate - Year.YearYear.DateDate.RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.Campaign + id="attribute.state.tags">CustomersCustomers.TypeType.TypeType.Campaign channelsCampaign + channels.Campaign channelsCampaign channels.Campaign channelsCampaign channels.Campaign @@ -1708,10 +1698,6 @@ interactions: id="label.campaign_channels.category">CategoryCategory.CategoryCategory.Campaign channelsCampaign - channels.TypeType.TypeType.Campaign channelsCampaign channels.Campaign idCampaign id.Campaign @@ -1725,12 +1711,24 @@ interactions: id="label.customer_name">Customer nameCustomer name.Customer nameCustomer name.CustomersCustomers.RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.Date + - DateDate - Date.DateDate.DateDate.Date + - Month/YearDate - Month/Year.Month and Year (12/2020)Month + and Year (12/2020).DateDate.Date + - Quarter/YearDate - Quarter/Year.Quarter and Year (Q1/2020)Quarter + and Year (Q1/2020).DateDate.Date + - Week/YearDate - Week/Year.Week and Year (W52/2020)Week + and Year (W52/2020).DateDate.Date + - YearDate - Year.YearYear.DateDate.LocationLocation.LocationLocation.CustomersCustomers.CategoryCategory.CategoryCategory.ProductsProducts.Date - - DateDate - Date.DateDate.DateDate.Date - - Week/YearDate - Week/Year.Week and Year (W52/2020)Week - and Year (W52/2020).DateDate.Date - - Month/YearDate - Month/Year.Month and Year (12/2020)Month - and Year (12/2020).DateDate.Date - - Quarter/YearDate - Quarter/Year.Quarter and Year (Q1/2020)Quarter - and Year (Q1/2020).DateDate.Date - - YearDate - Year.YearYear.DateDate.# + id="label.region">RegionRegion.RegionRegion.CustomersCustomers.StateState.StateState.CustomersCustomers.TypeType.TypeType.Campaign channelsCampaign + channels.# of Active Customers# of Active Customers.# of Orders# of Orders.filterContextfilterContext. - - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/clean - body: - locale: fr-FR - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml DATE: *id001 Expires: - '0' @@ -2022,7 +1998,12 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -2030,17 +2011,14 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: http://localhost:3000/api/v1/actions/workspaces/demo/translations/retrieve body: locale: fr-FR headers: - Accept: - - application/xml Accept-Encoding: - br, gzip, deflate Content-Type: @@ -2049,17 +2027,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/clean response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Content-Length: - - '40991' - Content-Type: - - application/xml DATE: *id001 Expires: - '0' @@ -2067,7 +2042,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -2075,7 +2053,27 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: + locale: fr-FR + headers: + Accept: + - application/xml + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve + response: body: string: CategoryCategoryCampaign - channelsTypeTypeCampaign channelsCampaign - idCampaign - idCampaignsCampaign idCampaign idCampaignsCampaign nameCampaign nameCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateOrder idOrder idOrder @@ -2175,24 +2182,15 @@ interactions: id="attribute.products.category">CategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersCustomersTypeTypeCampaign channelsCampaign channelsCampaign channelsCampaign @@ -2240,9 +2238,6 @@ interactions: id="label.campaign_channels.category.title">CategoryCategoryCampaign channelsTypeTypeCampaign channelsCampaign idCampaign idCampaignsCustomer nameCustomer nameCustomersRegionRegionCustomersStateStateCustomersDate + - DateDateDateDate + - Month/YearMonth + and Year (12/2020)DateDate + - Quarter/YearQuarter + and Year (Q1/2020)DateDate + - Week/YearWeek + and Year (W52/2020)DateDate + - YearYearDateLocationLocationCustomersCategoryCategoryProductsDate - - DateDateDateDate - - Week/YearWeek - and Year (W52/2020)DateDate - - Month/YearMonth - and Year (12/2020)DateDate - - Quarter/YearQuarter - and Year (Q1/2020)DateDate - - YearYearDateRegionRegionCustomersStateStateCustomersTypeTypeCampaign channels# of Active Customers# of OrdersfilterContext + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml index df058cd3c..ac5d4e755 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e99219afe218962468a69e4e81b headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,34 +37,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 7db541cbd4184a9020146007667ae0e6 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings body: data: - type: workspaceSetting - id: test_setting attributes: content: value: fr-FR type: LOCALE + id: test_setting + type: workspaceSetting headers: Accept: - application/json @@ -75,15 +71,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + meta: + origin: + originId: demo + originType: NATIVE + type: workspaceSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '316' Content-Type: @@ -96,16 +104,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + response: body: string: data: @@ -121,28 +147,9 @@ interactions: type: workspaceSetting links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '316' Content-Type: @@ -155,34 +162,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - meta: - origin: - originId: demo - originType: NATIVE - type: workspaceSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting body: null headers: Accept-Encoding: @@ -191,15 +185,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -210,15 +203,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml index fc65c17bc..b9dcf6658 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e9a48e994d36d0b32864747a13c headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,34 +37,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: ec45cd8b3a6ceb10dd359e9a9580354f + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings body: data: - type: workspaceSetting - id: test_setting attributes: content: value: fr-FR type: LOCALE + id: test_setting + type: workspaceSetting headers: Accept: - application/json @@ -75,15 +71,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting + meta: + origin: + originId: demo + originType: NATIVE + type: workspaceSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '316' Content-Type: @@ -96,16 +104,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + response: body: string: data: @@ -121,28 +147,9 @@ interactions: type: workspaceSetting links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '316' Content-Type: @@ -155,34 +162,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting - meta: - origin: - originId: demo - originType: NATIVE - type: workspaceSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting body: null headers: Accept-Encoding: @@ -191,15 +185,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -210,21 +203,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 body: null headers: Accept: @@ -235,15 +228,18 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 response: - status: - code: 200 - message: OK + body: + string: + data: [] + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '289' Content-Type: @@ -256,25 +252,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: [] - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting body: null headers: Accept-Encoding: @@ -283,15 +275,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -302,15 +293,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_clone_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_clone_workspace.yaml index 939713df2..524f9b416 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_clone_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_clone_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e8febd1402391bb794a34eb179f headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,35 +37,30 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: b495b86387d5ca4c821f6bfcbbc5123e + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources body: data: attributes: name: Test2 + password: demopass schema: demo type: POSTGRESQL - username: demouser - password: demopass url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer + username: demouser id: demo-bigquery-ds type: dataSource headers: @@ -78,15 +74,26 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + authenticationType: USERNAME_PASSWORD + name: Test2 + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer + username: demouser + id: demo-bigquery-ds + type: dataSource + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '382' Content-Type: @@ -99,33 +106,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - url: jdbc:postgresql://localhost:5432/demo?autosave=false&sslmode=prefer - username: demouser - authenticationType: USERNAME_PASSWORD - name: Test2 - type: POSTGRESQL - schema: demo - id: demo-bigquery-ds - type: dataSource - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: null headers: Accept: @@ -136,40 +131,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -181,48 +145,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -265,7 +229,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -277,145 +241,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -427,7 +391,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -437,7 +401,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -450,19 +414,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -470,15 +434,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -488,7 +452,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -497,7 +461,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -507,7 +471,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -517,7 +481,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -527,7 +491,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -536,7 +500,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -545,7 +509,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -555,7 +519,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -565,7 +529,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -575,7 +539,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -585,7 +549,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -595,7 +559,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -605,7 +569,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -615,7 +579,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -626,7 +590,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -636,7 +600,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -646,7 +610,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -656,7 +620,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -665,7 +629,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -674,7 +638,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -683,7 +647,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -692,7 +656,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -701,7 +665,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -710,7 +674,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -775,7 +739,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -851,7 +815,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -930,7 +894,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -989,7 +953,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1046,7 +1010,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1064,9 +1028,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1099,7 +1063,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1174,7 +1138,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1231,7 +1195,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1330,7 +1294,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1386,7 +1350,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1425,7 +1389,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1481,7 +1445,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1549,7 +1513,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1606,7 +1570,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1663,7 +1627,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2034,46 +1998,51 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '199' + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Type: - application/json DATE: *id001 - Referrer-Policy: + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + response: body: string: data: @@ -2083,9 +2052,32 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '199' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces body: null headers: Accept: @@ -2096,15 +2088,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e90fcb9b62f8e6a3e027bbd1e63 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -2113,26 +2109,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 7f12a363837e4aa580d964a3906acfad + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces body: null headers: Accept: @@ -2143,15 +2134,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e90165981df136f9b4a5cf7d6b8 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -2160,32 +2155,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 791315b0de437cd04bc4fa0c3ee40246 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_clone - type: workspace attributes: name: Demo (Clone) + id: demo_clone + type: workspace headers: Accept: - application/json @@ -2197,15 +2187,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: Demo (Clone) + id: demo_clone + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '200' Content-Type: @@ -2218,28 +2214,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo (Clone) - id: demo_clone - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -2250,37 +2239,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -2312,9 +2273,36 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: - columnName: wdf__region @@ -2361,15 +2349,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2378,6653 +2365,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_ID - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: CAMPAIGN_CHANNEL_ID - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: CATEGORY - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: TYPE - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: BUDGET - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: SPEND - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: CAMPAIGN_CHANNELS - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_CHANNEL_ID - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: BUDGET - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-bigquery-ds - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: CAMPAIGN_ID - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: CAMPAIGN_NAME - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: CAMPAIGNS - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: CUSTOMER_ID - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: CUSTOMER_NAME - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: REGION - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: GEO__STATE__LOCATION - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: STATE - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: CUSTOMERS - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_ID - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: CUSTOMER_ID - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: DATE - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: PRODUCT_ID - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: ORDER_ID - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: ORDER_LINE_ID - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: ORDER_STATUS - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: PRICE - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: QUANTITY - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: ORDER_LINES - type: dataSource - path: - - demo - - order_lines - tags: - - Order lines - workspaceDataFilterColumns: - - dataType: STRING - name: wdf__region - - dataType: STRING - name: wdf__state - workspaceDataFilterReferences: - - filterColumn: wdf__region - filterColumnDataType: STRING - filterId: - id: wdf__region_demo_clone - type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: PRODUCT_ID - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: PRODUCT_NAME - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: CATEGORY - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: PRODUCTS - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date - analytics: - 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' - id: campaign - title: Campaign - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - permissions: - - name: VIEW - assigneeRule: - type: allWorkspaceUsers - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - id: product_and_category - title: Product & Category - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - analyticalDashboardExtensions: [] - attributeHierarchies: [] - dashboardPlugins: - - content: - url: https://www.example.com - version: '2' - id: dashboard_plugin_1 - title: dashboard_plugin_1 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: Testing record dashboard_plugin_1 - - content: - url: https://www.example.com - version: '2' - id: dashboard_plugin_2 - title: dashboard_plugin_2 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: Testing record dashboard_plugin_2 - 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' - id: campaign_name_filter - title: filterContext - description: '' - - content: - filters: - - attributeFilter: - displayForm: - identifier: - id: region - type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af - filterElementsBy: [] - version: '2' - id: region_filter - title: filterContext - description: '' - metrics: - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - id: amount_of_active_customers - title: '# of Active Customers' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - id: amount_of_orders - title: '# of Orders' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: '#,##0.00' - maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - id: amount_of_valid_orders - title: '# of Valid Orders' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT SUM({fact/price}*{fact/quantity}) - id: order_amount - title: Order Amount - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / {metric/total_revenue} - id: percent_revenue - title: '% Revenue' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - id: revenue - title: Revenue - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - id: revenue-clothing - title: Revenue (Clothing) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( - "Electronics") - id: revenue-electronic - title: Revenue (Electronic) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - id: revenue-home - title: Revenue (Home) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - id: revenue-outdoor - title: Revenue (Outdoor) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - id: revenue_per_customer - title: Revenue per Customer - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - id: revenue_top_10 - title: Revenue / Top 10 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - id: revenue_top_10_percent - title: Revenue / Top 10% - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - id: total_revenue - title: Total Revenue - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - id: total_revenue-no_filters - title: Total Revenue (No Filters) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - exportDefinitions: [] - memoryItems: [] - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '292' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW - - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone/permissions - body: - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '219' - Content-Type: - - application/json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo (Clone) - id: demo_clone - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: product_and_category - title: Product & Category - attributeHierarchies: [] - dashboardPlugins: - - content: - url: https://www.example.com - version: '2' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: Testing record dashboard_plugin_1 - id: dashboard_plugin_1 - title: dashboard_plugin_1 - - content: - url: https://www.example.com - version: '2' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - memoryItems: [] - metrics: - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: amount_of_active_customers - title: '# of Active Customers' - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: amount_of_orders - title: '# of Orders' - - content: - format: '#,##0' - maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT - {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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")) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: amount_of_valid_orders - title: '# of Valid Orders' - - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: campaign_spend - title: Campaign Spend - - content: - format: $#,##0 - maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: order_amount - title: Order Amount - - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue - title: '% Revenue' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ - \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ - \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ - \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ - \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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")) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: revenue - title: Revenue - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-clothing - title: Revenue (Clothing) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-electronic - title: Revenue (Electronic) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-home - title: Revenue (Home) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-outdoor - title: Revenue (Outdoor) - - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_per_customer - title: Revenue per Customer - - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_top_10 - title: Revenue / Top 10 - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_top_10_percent - title: Revenue / Top 10% - - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: total_revenue - title: Total Revenue - - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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-bigquery-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-bigquery-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-bigquery-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-bigquery-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-bigquery-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_demo_clone - 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-bigquery-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 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: product_and_category - title: Product & Category - attributeHierarchies: [] - dashboardPlugins: - - content: - url: https://www.example.com - version: '2' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: Testing record dashboard_plugin_1 - id: dashboard_plugin_1 - title: dashboard_plugin_1 - - content: - url: https://www.example.com - version: '2' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - memoryItems: [] - metrics: - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: amount_of_active_customers - title: '# of Active Customers' - - content: - format: '#,##0' - maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: amount_of_orders - title: '# of Orders' - - content: - format: '#,##0' - maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT - {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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")) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: amount_of_valid_orders - title: '# of Valid Orders' - - content: - format: $#,##0 - maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: campaign_spend - title: Campaign Spend - - content: - format: $#,##0 - maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: order_amount - title: Order Amount - - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue - title: '% Revenue' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ - \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ - \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ - \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - - content: - format: '#,##0.0%' - maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ - \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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")) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - description: '' - id: revenue - title: Revenue - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-clothing - title: Revenue (Clothing) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-electronic - title: Revenue (Electronic) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-home - title: Revenue (Home) - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue-outdoor - title: Revenue (Outdoor) - - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_per_customer - title: Revenue per Customer - - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_top_10 - title: Revenue / Top 10 - - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: revenue_top_10_percent - title: Revenue / Top 10% - - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - id: total_revenue - title: Total Revenue - - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - createdAt: 2026-03-25 09:16 - createdBy: - id: admin - type: user - 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 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '199' - Content-Type: - - application/json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo - id: demo - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 404 - message: Not Found - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '172' - Content-Type: - - application/problem+json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: fd8c50b808e49d4cd3765d2c064d07c2 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 404 - message: Not Found - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '172' - Content-Type: - - application/problem+json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 6b6a6bc22f2936dc49afcfe90546eeaa - - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces - body: - data: - id: demo_jacek - type: workspace - attributes: - name: Deno Jacek - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 201 - message: Created - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '198' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Deno Jacek - id: demo_jacek - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '772' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - workspaceDataFilters: - - columnName: wdf__region - id: wdf__region - title: Customer region - workspace: - id: demo - type: workspace - workspaceDataFilterSettings: - - filterValues: - - West - id: region_west - title: Region West - workspace: - id: demo_west - type: workspace - - columnName: wdf__region - id: wdf__region_demo_clone - title: Customer region - workspace: - id: demo_clone - type: workspace - workspaceDataFilterSettings: [] - - 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 - - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters - body: - 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__region - id: wdf__region_demo_clone - title: Customer region - workspace: - id: demo_clone - type: workspace - workspaceDataFilterSettings: [] - - 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 - - columnName: wdf__region - id: wdf__region_demo_jacek - title: Customer region - workspace: - id: demo_jacek - type: workspace - workspaceDataFilterSettings: [] - headers: - Accept-Encoding: - - br, gzip, deflate - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' - - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek - body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_ID - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: CAMPAIGN_CHANNEL_ID - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: CATEGORY - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: TYPE - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: BUDGET - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: SPEND - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: CAMPAIGN_CHANNELS - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_CHANNEL_ID - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: BUDGET - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: CAMPAIGN_ID - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: CAMPAIGN_NAME - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: CAMPAIGNS - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: CUSTOMER_ID - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: CUSTOMER_NAME - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: REGION - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: GEO__STATE__LOCATION - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: STATE - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: CUSTOMERS - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_ID - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: CUSTOMER_ID - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: DATE - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: PRODUCT_ID - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: ORDER_ID - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: ORDER_LINE_ID - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: ORDER_STATUS - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: PRICE - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: QUANTITY - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: ORDER_LINES - type: dataSource - path: - - demo - - order_lines - tags: - - Order lines - workspaceDataFilterColumns: - - dataType: STRING - name: wdf__region - - dataType: STRING - name: wdf__state - workspaceDataFilterReferences: - - filterColumn: wdf__region - filterColumnDataType: STRING - filterId: - id: wdf__region_demo_jacek - type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: PRODUCT_ID - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: PRODUCT_NAME - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: CATEGORY - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: PRODUCTS - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -9032,58 +2390,58 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -9116,452 +2474,453 @@ interactions: type: dashboardPlugin version: '2' version: '2' - id: dashboard_plugin - title: Dashboard plugin - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: dashboard_plugin + title: Dashboard plugin - content: filterContextRef: identifier: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: product_and_category - title: Product & Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' - analyticalDashboardExtensions: [] + id: product_and_category + title: Product & Category attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' - id: dashboard_plugin_1 - title: dashboard_plugin_1 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 - content: url: https://www.example.com version: '2' - id: dashboard_plugin_2 - title: dashboard_plugin_2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user 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 + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - id: amount_of_active_customers - title: '# of Active Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_orders + title: '# of Orders' - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - id: amount_of_top_customers - title: '# of Top Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_top_customers + title: '# of Top Customers' - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: amount_of_valid_orders - title: '# of Valid Orders' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - id: order_amount - title: Order Amount - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: order_amount + title: Order Amount - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - id: percent_revenue - title: '% Revenue' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue + title: '% Revenue' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product + title: '% Revenue per Product' - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: revenue - title: Revenue - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: revenue + title: Revenue - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - id: revenue-clothing - title: Revenue (Clothing) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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% - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - content: buckets: @@ -9621,12 +2980,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: buckets: - items: @@ -9697,12 +3056,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: customers_trend - title: Customers Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: customers_trend + title: Customers Trend - content: buckets: - items: @@ -9776,12 +3135,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' - content: buckets: - items: @@ -9835,12 +3194,12 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percentage_of_customers_by_region + title: Percentage of Customers by Region - content: buckets: - items: @@ -9892,12 +3251,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: product_breakdown - title: Product Breakdown - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_breakdown + title: Product Breakdown - content: buckets: - items: @@ -9910,9 +3269,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -9945,12 +3304,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - id: product_categories_pie_chart - title: Product Categories Pie Chart - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_categories_pie_chart + title: Product Categories Pie Chart - content: buckets: - items: @@ -10020,12 +3379,12 @@ interactions: visible: false version: '2' visualizationUrl: local:column - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) - content: buckets: - items: @@ -10077,12 +3436,12 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - id: product_saleability - title: Product Saleability - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_saleability + title: Product Saleability - content: buckets: - items: @@ -10176,12 +3535,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category - content: buckets: - items: @@ -10232,12 +3591,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - id: revenue_by_category_trend - title: Revenue by Category Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_category_trend + title: Revenue by Category Trend - content: buckets: - items: @@ -10271,12 +3630,12 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - id: revenue_by_product - title: Revenue by Product - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_product + title: Revenue by Product - content: buckets: - items: @@ -10327,12 +3686,12 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign - content: buckets: - items: @@ -10395,12 +3754,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: revenue_trend - title: Revenue Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_trend + title: Revenue Trend - content: buckets: - items: @@ -10452,12 +3811,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_customers - title: Top 10 Customers - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: top_10_customers + title: Top 10 Customers - content: buckets: - items: @@ -10509,14 +3868,377 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_products - title: Top 10 Products - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user - exportDefinitions: [] - memoryItems: [] + 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-bigquery-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-bigquery-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-bigquery-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-bigquery-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-bigquery-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_demo_clone + 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-bigquery-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 headers: Accept-Encoding: - br, gzip, deflate @@ -10526,15 +4248,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -10543,21 +4264,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions body: null headers: Accept: @@ -10568,15 +4289,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '292' Content-Type: @@ -10589,58 +4327,40 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek/permissions body: - permissions: + hierarchyPermissions: - assignee: id: demo2 type: user - name: ANALYZE + name: MANAGE - assignee: id: demoGroup type: userGroup - name: VIEW - hierarchyPermissions: + name: ANALYZE + permissions: - assignee: id: demo2 type: user - name: MANAGE + name: ANALYZE - assignee: id: demoGroup type: userGroup - name: ANALYZE + name: VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -10650,15 +4370,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -10667,21 +4386,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces body: null headers: Accept: @@ -10692,45 +4411,44 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Demo (Clone) + id: demo_clone + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - - '217' + - '219' Content-Type: - application/json DATE: *id001 Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Deno Jacek - id: demo_jacek - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions body: null headers: Accept: @@ -10741,17 +4459,1878 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest - response: - status: - code: 200 - message: OK + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone + response: + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: dashboard_plugin + title: Dashboard plugin + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: product_and_category + title: Product & Category + attributeHierarchies: [] + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + exportDefinitions: [] + filterContexts: + - 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 + - content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' + description: '' + id: region_filter + title: filterContext + memoryItems: [] + metrics: + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_active_customers + title: '# of Active Customers' + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_orders + title: '# of Orders' + - content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT + {metric/revenue} BY {attribute/customer_id}) > 10000 ' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: campaign_spend + title: Campaign Spend + - content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: order_amount + title: Order Amount + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue + title: '% Revenue' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: revenue + title: Revenue + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-clothing + title: Revenue (Clothing) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-electronic + title: Revenue (Electronic) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-home + title: Revenue (Home) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-outdoor + title: Revenue (Outdoor) + - content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_customer + title: Revenue per Customer + - content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10 + title: Revenue / Top 10 + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: total_revenue + title: Total Revenue + - content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: product_breakdown + title: Product Breakdown + - 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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-bigquery-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-bigquery-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-bigquery-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-bigquery-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-bigquery-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_demo_clone + 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-bigquery-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 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '292' + Content-Encoding: + - br Content-Type: - application/json DATE: *id001 @@ -10762,103 +6341,23 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek/permissions - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: + X-Xss-Protection: + - 1; mode=block status: code: 200 message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '292' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: null headers: Accept: @@ -10869,40 +6368,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -10914,48 +6382,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -10998,7 +6466,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11010,145 +6478,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11160,7 +6628,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11170,7 +6638,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11183,19 +6651,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -11203,15 +6671,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -11221,7 +6689,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11230,7 +6698,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11240,7 +6708,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11250,7 +6718,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11260,7 +6728,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11269,7 +6737,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11278,7 +6746,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11288,7 +6756,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11298,7 +6766,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11308,7 +6776,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11318,7 +6786,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11328,7 +6796,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11338,7 +6806,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11348,7 +6816,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11359,7 +6827,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11369,7 +6837,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11379,7 +6847,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11389,7 +6857,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11398,7 +6866,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11407,7 +6875,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11416,7 +6884,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11425,7 +6893,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11434,7 +6902,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11443,7 +6911,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11508,7 +6976,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11584,7 +7052,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11663,7 +7131,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11722,7 +7190,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11779,7 +7247,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11797,9 +7265,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -11832,7 +7300,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11907,7 +7375,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -11964,7 +7432,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12063,7 +7531,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12119,7 +7587,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12158,7 +7626,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12214,7 +7682,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12282,7 +7750,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12339,7 +7807,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12396,7 +7864,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -12767,58 +8235,38 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '199' + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo - id: demo - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces body: null headers: Accept: @@ -12829,79 +8277,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '219' - Content-Type: - - application/json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: - name: Demo (Clone) - id: demo_clone + name: Demo + id: demo type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + - max-age=5, private + Content-Length: + - '199' Content-Type: - application/json DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -12910,112 +8309,58 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - - attributes: - name: Demo - id: demo - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo - type: workspace - - attributes: - name: Demo (Clone) - id: demo_clone - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone - type: workspace - - attributes: - name: Deno Jacek - id: demo_jacek - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek - type: workspace - - attributes: - name: Demo West - id: demo_west - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west - relationships: - parent: - data: - id: demo - type: workspace - type: workspace - - attributes: - name: Demo West California - id: demo_west_california - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west_california - relationships: - parent: - data: - id: demo_west - type: workspace - type: workspace - included: - - attributes: - name: Demo - id: demo - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo - type: workspace - - attributes: - name: Demo West - id: demo_west - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone body: null headers: + Accept: + - application/json Accept-Encoding: - br, gzip, deflate X-GDC-VALIDATE-RELATIONS: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces response: - status: - code: 204 - message: No Content + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e92b617e1d2a870562f12046a8b headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + - max-age=5, private + Content-Length: + - '172' Content-Type: - - application/vnd.gooddata.api+json + - application/problem+json DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces body: null headers: Accept: @@ -13026,15 +8371,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e92d84a638f99794f17735d10cf headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -13043,32 +8392,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 7c909299b72f95d231cb97a19693e4e3 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_clone - type: workspace attributes: - name: Demo (Clone) + name: Deno Jacek + id: demo_jacek + type: workspace headers: Accept: - application/json @@ -13080,17 +8424,23 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest - response: - status: - code: 201 - message: Created + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces + response: + body: + string: + data: + attributes: + name: Deno Jacek + id: demo_jacek + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '200' + - '198' Content-Type: - application/json DATE: *id001 @@ -13101,28 +8451,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo (Clone) - id: demo_clone - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -13133,37 +8476,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '772' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -13182,10 +8497,10 @@ interactions: id: demo_west type: workspace - columnName: wdf__region - id: wdf__region_demo_jacek + id: wdf__region_demo_clone title: Customer region workspace: - id: demo_jacek + id: demo_clone type: workspace workspaceDataFilterSettings: [] - columnName: wdf__state @@ -13202,9 +8517,36 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '772' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: - columnName: wdf__region @@ -13222,10 +8564,10 @@ interactions: id: demo_west type: workspace - columnName: wdf__region - id: wdf__region_demo_jacek + id: wdf__region_demo_clone title: Customer region workspace: - id: demo_jacek + id: demo_clone type: workspace workspaceDataFilterSettings: [] - columnName: wdf__state @@ -13243,10 +8585,10 @@ interactions: id: demo_west_california type: workspace - columnName: wdf__region - id: wdf__region_demo_clone + id: wdf__region_demo_jacek title: Customer region workspace: - id: demo_clone + id: demo_jacek type: workspace workspaceDataFilterSettings: [] headers: @@ -13258,15 +8600,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -13275,222 +8616,1764 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone body: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: dashboard_plugin + title: Dashboard plugin + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: product_and_category + title: Product & Category + attributeHierarchies: [] + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + exportDefinitions: [] + filterContexts: + - 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 + - content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' + description: '' + id: region_filter + title: filterContext + memoryItems: [] + metrics: + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_active_customers + title: '# of Active Customers' + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_orders + title: '# of Orders' + - content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} + BY {attribute/customer_id}) > 10000 ' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: campaign_spend + title: Campaign Spend + - content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: order_amount + title: Order Amount + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue + title: '% Revenue' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: revenue + title: Revenue + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-clothing + title: Revenue (Clothing) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( + "Electronics") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-electronic + title: Revenue (Electronic) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-home + title: Revenue (Home) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-outdoor + title: Revenue (Outdoor) + - content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_customer + title: Revenue per Customer + - content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10 + title: Revenue / Top 10 + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: total_revenue + title: Total Revenue + - content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: product_breakdown + title: Product Breakdown + - 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: top_10_products + title: Top 10 Products ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: CAMPAIGN_ID - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: CAMPAIGN_CHANNEL_ID - title: Campaign channel id sourceColumnDataType: STRING - description: Campaign channel id tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: CATEGORY - title: Category sourceColumnDataType: STRING - description: Category tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: TYPE - title: Type sourceColumnDataType: STRING - description: Type tags: - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: CAMPAIGN_CHANNELS + path: + - demo + - campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: BUDGET - title: Budget sourceColumnDataType: NUMERIC - description: Budget tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: SPEND - title: Spend sourceColumnDataType: NUMERIC - description: Spend tags: - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: CAMPAIGN_CHANNELS - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: CAMPAIGN_CHANNEL_ID + - column: CAMPAIGN_ID + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg + 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 - sourceColumnDataType: INT - description: Budget Agg 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-bigquery-ds + dataSourceId: demo-test-ds statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category tags: - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: CAMPAIGN_ID - title: Campaign id sourceColumnDataType: INT - description: Campaign id tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: CAMPAIGN_NAME - title: Campaign name sourceColumnDataType: STRING - description: Campaign name tags: - Campaigns - facts: [] - aggregatedFacts: [] + title: Campaign name dataSourceTableId: - dataSourceId: demo-bigquery-ds + dataSourceId: demo-test-ds id: CAMPAIGNS - type: dataSource path: - demo - campaigns - tags: - - Campaigns - - grain: - - id: customer_id + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - description: Customers + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: CUSTOMER_ID - title: Customer id sourceColumnDataType: INT - description: Customer id tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: CUSTOMER_NAME - title: Customer name sourceColumnDataType: STRING - description: Customer name tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: REGION - title: Region sourceColumnDataType: STRING - description: Region tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: GEO__STATE__LOCATION - title: Location sourceColumnDataType: STRING - description: Location tags: - Customers + title: Location valueType: GEO sourceColumn: STATE - title: State sourceColumnDataType: STRING - description: State tags: - Customers - facts: [] - aggregatedFacts: [] + title: State dataSourceTableId: - dataSourceId: demo-bigquery-ds + dataSourceId: demo-test-ds id: CUSTOMERS - type: dataSource path: - demo - customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -13501,92 +10384,43 @@ interactions: multivalue: false sources: - column: CAMPAIGN_ID + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: CUSTOMER_ID + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false - sources: - - column: DATE - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: PRODUCT_ID - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: ORDER_ID - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: ORDER_LINE_ID - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: ORDER_STATUS - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: PRICE - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: QUANTITY - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-bigquery-ds - id: ORDER_LINES - type: dataSource - path: - - demo - - order_lines + 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 @@ -13596,53 +10430,54 @@ interactions: - filterColumn: wdf__region filterColumnDataType: STRING filterId: - id: wdf__region_demo_clone + id: wdf__region_demo_jacek type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: PRODUCT_ID - title: Product id sourceColumnDataType: INT - description: Product id tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: PRODUCT_NAME - title: Product name sourceColumnDataType: STRING - description: Product name tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: CATEGORY - title: Category sourceColumnDataType: STRING - description: Category tags: - Products - facts: [] - aggregatedFacts: [] + title: Category dataSourceTableId: - dataSourceId: demo-bigquery-ds + dataSourceId: demo-test-ds id: PRODUCTS - type: dataSource path: - demo - products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -13652,11 +10487,2768 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + headers: + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek + response: + body: + string: '' + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions + response: + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '292' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + headers: + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek/permissions + response: + body: + string: '' + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces + response: + body: + string: + data: + attributes: + name: Deno Jacek + id: demo_jacek + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '217' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions + response: + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '292' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_jacek/permissions + response: + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '292' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo + response: + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: dashboard_plugin + title: Dashboard plugin + - 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' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: product_and_category + title: Product & Category + attributeHierarchies: [] + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + exportDefinitions: [] + filterContexts: + - 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 + - content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' + description: '' + id: region_filter + title: filterContext + memoryItems: [] + metrics: + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_active_customers + title: '# of Active Customers' + - content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: amount_of_orders + title: '# of Orders' + - content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT + {metric/revenue} BY {attribute/customer_id}) > 10000 ' + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: campaign_spend + title: Campaign Spend + - content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: order_amount + title: Order Amount + - content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue + title: '% Revenue' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: + format: '#,##0.0%' + maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ + \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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")) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + description: '' + id: revenue + title: Revenue + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-clothing + title: Revenue (Clothing) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-electronic + title: Revenue (Electronic) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-home + title: Revenue (Home) + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue-outdoor + title: Revenue (Outdoor) + - content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_customer + title: Revenue per Customer + - content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10 + title: Revenue / Top 10 + - content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: total_revenue + title: Total Revenue + - content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + id: product_breakdown + title: Product Breakdown + - 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + createdAt: 2026-03-30 13:45 + createdBy: + id: admin + type: user + 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 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + response: + body: + string: + data: + attributes: + name: Demo + id: demo + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '199' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces + response: + body: + string: + data: + attributes: + name: Demo (Clone) + id: demo_clone + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '219' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: + body: + string: + data: + - attributes: + name: Demo + id: demo + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo + type: workspace + - attributes: + name: Demo (Clone) + id: demo_clone + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone + type: workspace + - attributes: + name: Deno Jacek + id: demo_jacek + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_jacek + type: workspace + - attributes: + name: Demo West + id: demo_west + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west + relationships: + parent: + data: + id: demo + type: workspace + type: workspace + - attributes: + name: Demo West California + id: demo_west_california + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west_california + relationships: + parent: + data: + id: demo_west + type: workspace + type: workspace + included: + - attributes: + name: Demo + id: demo + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo + type: workspace + - attributes: + name: Demo West + id: demo_west + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west + type: workspace + links: + next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '298' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone + response: + body: + string: '' + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone?include=workspaces + response: + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e9400e653e18983b082b82edc64 + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '172' + Content-Type: + - application/problem+json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found + - request: + body: + data: + attributes: + name: Demo (Clone) + id: demo_clone + type: workspace + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces + response: + body: + string: + data: + attributes: + name: Demo (Clone) + id: demo_clone + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_clone + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '200' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters + response: + body: + string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__region + id: wdf__region_demo_jacek + title: Customer region + workspace: + id: demo_jacek + type: workspace + workspaceDataFilterSettings: [] + - 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 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '772' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: + 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__region + id: wdf__region_demo_jacek + title: Customer region + workspace: + id: demo_jacek + type: workspace + workspaceDataFilterSettings: [] + - 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 + - columnName: wdf__region + id: wdf__region_demo_clone + title: Customer region + workspace: + id: demo_clone + type: workspace + workspaceDataFilterSettings: [] + headers: + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters + response: + body: + string: '' + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -13664,58 +13256,58 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -13748,452 +13340,453 @@ interactions: type: dashboardPlugin version: '2' version: '2' - id: dashboard_plugin - title: Dashboard plugin - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: dashboard_plugin + title: Dashboard plugin - content: filterContextRef: identifier: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: product_and_category - title: Product & Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' - analyticalDashboardExtensions: [] + id: product_and_category + title: Product & Category attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' - id: dashboard_plugin_1 - title: dashboard_plugin_1 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 - content: url: https://www.example.com version: '2' - id: dashboard_plugin_2 - title: dashboard_plugin_2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user 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 + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - id: amount_of_active_customers - title: '# of Active Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_orders + title: '# of Orders' - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - id: amount_of_top_customers - title: '# of Top Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_top_customers + title: '# of Top Customers' - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: amount_of_valid_orders - title: '# of Valid Orders' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - id: order_amount - title: Order Amount - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: order_amount + title: Order Amount - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - id: percent_revenue - title: '% Revenue' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue + title: '% Revenue' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product + title: '% Revenue per Product' - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: revenue - title: Revenue - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: revenue + title: Revenue - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - id: revenue-clothing - title: Revenue (Clothing) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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% - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - content: buckets: @@ -14253,12 +13846,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: buckets: - items: @@ -14329,12 +13922,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: customers_trend - title: Customers Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: customers_trend + title: Customers Trend - content: buckets: - items: @@ -14408,12 +14001,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' - content: buckets: - items: @@ -14467,12 +14060,12 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percentage_of_customers_by_region + title: Percentage of Customers by Region - content: buckets: - items: @@ -14524,12 +14117,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: product_breakdown - title: Product Breakdown - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_breakdown + title: Product Breakdown - content: buckets: - items: @@ -14542,9 +14135,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -14577,12 +14170,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - id: product_categories_pie_chart - title: Product Categories Pie Chart - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_categories_pie_chart + title: Product Categories Pie Chart - content: buckets: - items: @@ -14652,12 +14245,12 @@ interactions: visible: false version: '2' visualizationUrl: local:column - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) - content: buckets: - items: @@ -14709,12 +14302,12 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - id: product_saleability - title: Product Saleability - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_saleability + title: Product Saleability - content: buckets: - items: @@ -14808,12 +14401,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category - content: buckets: - items: @@ -14864,12 +14457,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - id: revenue_by_category_trend - title: Revenue by Category Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_category_trend + title: Revenue by Category Trend - content: buckets: - items: @@ -14903,12 +14496,12 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - id: revenue_by_product - title: Revenue by Product - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_product + title: Revenue by Product - content: buckets: - items: @@ -14959,12 +14552,12 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign - content: buckets: - items: @@ -15027,12 +14620,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: revenue_trend - title: Revenue Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_trend + title: Revenue Trend - content: buckets: - items: @@ -15084,12 +14677,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_customers - title: Top 10 Customers - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: top_10_customers + title: Top 10 Customers - content: buckets: - items: @@ -15141,14 +14734,377 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_products - title: Top 10 Products - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user - exportDefinitions: [] - memoryItems: [] + 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-bigquery-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-bigquery-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-bigquery-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-bigquery-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-bigquery-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_demo_clone + 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-bigquery-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 headers: Accept-Encoding: - br, gzip, deflate @@ -15158,15 +15114,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -15175,21 +15130,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions body: null headers: Accept: @@ -15200,15 +15155,32 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/permissions response: - status: - code: 200 - message: OK + body: + string: + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '292' Content-Type: @@ -15221,58 +15193,40 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone/permissions body: - permissions: + hierarchyPermissions: - assignee: id: demo2 type: user - name: ANALYZE + name: MANAGE - assignee: id: demoGroup type: userGroup - name: VIEW - hierarchyPermissions: + name: ANALYZE + permissions: - assignee: id: demo2 type: user - name: MANAGE + name: ANALYZE - assignee: id: demoGroup type: userGroup - name: ANALYZE + name: VIEW headers: Accept-Encoding: - br, gzip, deflate @@ -15282,15 +15236,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_clone/permissions response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -15299,21 +15252,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -15345,9 +15298,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -15359,6 +15310,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -15369,54 +15321,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -15457,200 +15409,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -15672,9 +15625,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -15730,9 +15683,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -16115,9 +16068,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -16680,207 +16633,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -16891,92 +16892,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -16988,51 +16940,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -17042,10 +16995,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -17057,12 +17010,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -17076,9 +17028,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -17090,18 +17042,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -17110,12 +17062,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -17131,15 +17084,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -17148,21 +17100,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds body: null headers: Accept-Encoding: @@ -17171,15 +17123,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/dataSources/demo-bigquery-ds response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -17190,15 +17141,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml index 1cfd517b5..ac5a919b4 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -94,11 +59,41 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '255' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test?include=workspaces body: null headers: Accept: @@ -109,15 +104,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e7f498a505d84418d97c570101f headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -126,37 +125,32 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 845632fc0baca9ed33d68265e1fe9ffe + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: test - type: workspace attributes: name: Test + id: test relationships: parent: data: id: demo type: workspace + type: workspace headers: Accept: - application/json @@ -168,15 +162,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: Test + id: test + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '180' Content-Type: @@ -189,28 +189,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Test - id: test - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -221,40 +214,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -311,48 +273,53 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Length: - - '453' + - '269' Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test?include=workspaces + response: body: string: data: @@ -374,9 +341,32 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/test?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '453' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -408,9 +398,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -422,6 +410,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -432,54 +421,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -520,200 +509,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -735,9 +725,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -793,9 +783,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1178,9 +1168,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1743,207 +1733,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -1954,92 +1992,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -2051,51 +2040,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2105,10 +2095,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2120,12 +2110,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2139,9 +2128,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2153,18 +2142,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2173,12 +2162,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2194,15 +2184,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2211,15 +2200,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml index dae4a11bb..0952c1ff5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -104,46 +69,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -192,144 +157,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -354,19 +319,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -374,15 +339,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -852,9 +817,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1859,33 +1824,15 @@ interactions: permissions: [] settings: [] userDataFilters: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -1893,7 +1840,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Transfer-Encoding: - chunked Vary: @@ -1904,8 +1851,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO + response: body: string: workspaceDataFilters: @@ -1961,46 +1925,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -2049,144 +2013,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -2211,19 +2175,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2231,15 +2195,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2709,9 +2673,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3716,3 +3680,35 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml index 6b1cd4309..8d9831728 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_non_existing_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -94,35 +59,19 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '255' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -130,9 +79,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -141,8 +88,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -188,32 +152,15 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '255' Content-Type: - application/json DATE: *id001 @@ -224,9 +171,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -235,8 +180,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -282,5 +244,37 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '255' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml index 6b1cd4309..8d9831728 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_parent_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -94,35 +59,19 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '255' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -130,9 +79,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -141,8 +88,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -188,32 +152,15 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '255' Content-Type: - application/json DATE: *id001 @@ -224,9 +171,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -235,8 +180,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -282,5 +244,37 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '255' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml index c1521f4da..9808e6e12 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -94,35 +59,19 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br + Content-Length: + - '255' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -130,9 +79,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -141,8 +88,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -188,30 +152,17 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west_california - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + Content-Encoding: + - br + Content-Length: + - '255' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' @@ -220,44 +171,39 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: - Accept: - - application/json Accept-Encoding: - br, gzip, deflate X-GDC-VALIDATE-RELATIONS: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west_california response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '893' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -266,16 +212,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -304,11 +268,38 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '893' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -340,9 +331,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -354,6 +343,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -364,54 +354,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -452,200 +442,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -667,9 +658,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -725,9 +716,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1110,9 +1101,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1675,207 +1666,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -1886,92 +1925,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -1983,51 +1973,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2037,10 +2028,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2052,12 +2043,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2071,9 +2061,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2085,18 +2075,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2105,12 +2095,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2126,15 +2117,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2143,15 +2133,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_user_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_user_data_filters.yaml index a20cc9882..e065f6aa3 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_user_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_user_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -14,15 +11,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -36,22 +33,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -62,15 +58,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -83,16 +79,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml index accb3d5d1..2624573df 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,46 +25,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -148,143 +113,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -309,19 +274,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -329,15 +294,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -807,9 +772,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1737,33 +1702,15 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -1771,7 +1718,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Transfer-Encoding: - chunked Vary: @@ -1782,8 +1729,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO + response: body: string: analytics: @@ -1795,46 +1759,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -1883,143 +1847,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -2044,19 +2008,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2064,15 +2028,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2542,9 +2506,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3472,3 +3436,35 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml index d7ec092c4..6dc887f83 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -77,33 +45,15 @@ interactions: workspace: id: demo_west_california type: workspace - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '603' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -111,16 +61,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters + response: body: string: workspaceDataFilters: @@ -152,3 +120,33 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml index 361653555..ae4555984 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -104,46 +69,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -192,144 +157,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -354,19 +319,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -374,15 +339,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -852,9 +817,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1859,3 +1824,36 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml index 361653555..ae4555984 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -104,46 +69,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -192,144 +157,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -354,19 +319,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -374,15 +339,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -852,9 +817,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1859,3 +1824,36 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml index e16e14488..02e469fe9 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces body: null headers: Accept: @@ -14,15 +11,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Demo + id: demo + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '199' Content-Type: @@ -32,28 +35,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo - id: demo - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces body: null headers: Accept: @@ -64,33 +60,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '468' - Content-Type: - - application/json - DATE: *id001 - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -112,3 +84,29 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '468' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_user_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_user_data_filters.yaml index cdf4a1f4a..758bb53ab 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_user_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_user_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -14,15 +11,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -36,22 +33,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: userDataFilters: [] headers: @@ -63,15 +59,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -80,21 +75,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -105,15 +100,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -126,22 +121,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -150,15 +144,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -173,21 +166,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -196,15 +189,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -217,42 +230,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: userDataFilters: [] headers: @@ -264,15 +256,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -281,21 +272,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -306,15 +297,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -327,22 +318,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -374,9 +364,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -388,6 +376,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -398,54 +387,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -486,200 +475,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name - type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + type: label filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -701,9 +691,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -759,9 +749,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1144,9 +1134,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1709,207 +1699,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -1920,92 +1958,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -2017,51 +2006,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2071,10 +2061,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2086,12 +2076,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2105,9 +2094,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2119,18 +2108,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2139,12 +2128,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2160,15 +2150,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2177,15 +2166,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml index 23f2fc020..0d63ce95d 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,46 +25,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -148,143 +113,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -309,19 +274,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -329,15 +294,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -807,9 +772,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1737,9 +1702,39 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: {} headers: Accept-Encoding: @@ -1750,15 +1745,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1767,21 +1761,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: null headers: Accept: @@ -1792,15 +1786,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 200 - message: OK + body: + string: + analytics: + analyticalDashboardExtensions: [] + analyticalDashboards: [] + attributeHierarchies: [] + dashboardPlugins: [] + exportDefinitions: [] + filterContexts: [] + memoryItems: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '264' Content-Type: @@ -1813,34 +1819,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - analytics: - analyticalDashboardExtensions: [] - analyticalDashboards: [] - attributeHierarchies: [] - dashboardPlugins: [] - exportDefinitions: [] - filterContexts: [] - memoryItems: [] - metrics: [] - visualizationObjects: [] - ldm: - datasets: [] - dateInstances: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -1849,15 +1842,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest - response: - status: - code: 302 - message: Found + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization + response: + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -1872,21 +1864,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -1895,15 +1887,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -1916,409 +1928,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: budget - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaigns - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: state - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: customers - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: product_id - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: product_name - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: products - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -2367,13 +1994,13 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -2552,24 +2179,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' + description: '' id: product_and_category title: Product & Category - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: [] filterContexts: - content: filters: @@ -2589,9 +2216,9 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: @@ -2605,9 +2232,10 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -2629,9 +2257,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -2686,9 +2314,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") @@ -3633,8 +3261,371 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: [] - memoryItems: [] + 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 headers: Accept-Encoding: - br, gzip, deflate @@ -3644,15 +3635,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3661,21 +3651,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -3686,40 +3676,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -5408,9 +5367,38 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -5442,9 +5430,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -5456,6 +5442,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -5466,54 +5453,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -5554,200 +5541,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -5769,9 +5757,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -5827,9 +5815,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -6212,9 +6200,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -6777,207 +6765,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -6988,92 +7024,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -7085,51 +7072,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -7139,10 +7127,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -7154,12 +7142,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -7173,9 +7160,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -7187,18 +7174,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -7207,12 +7194,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -7228,15 +7216,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -7245,15 +7232,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml index 555d3e747..9b6c2b3fe 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -77,9 +45,37 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: [] headers: @@ -91,15 +87,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -108,21 +103,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -133,15 +128,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK + body: + string: + workspaceDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '27' Content-Type: @@ -154,22 +149,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - workspaceDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -178,15 +172,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -201,21 +194,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -224,15 +217,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -245,42 +258,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: - columnName: wdf__region @@ -320,15 +312,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -337,21 +328,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -362,37 +353,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -424,9 +387,36 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -458,9 +448,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -472,6 +460,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -482,54 +471,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -570,200 +559,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name - type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + type: label filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -785,9 +775,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -843,9 +833,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1228,9 +1218,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1793,207 +1783,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -2004,92 +2042,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -2101,51 +2090,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2155,10 +2145,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2170,12 +2160,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2189,9 +2178,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2203,18 +2192,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2223,12 +2212,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2244,15 +2234,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2261,15 +2250,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml index c07156e2b..6a34d730d 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: [] workspaces: [] @@ -16,15 +13,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -34,21 +30,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: null headers: Accept: @@ -59,15 +55,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 200 - message: OK + body: + string: + workspaceDataFilters: [] + workspaces: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '43' Content-Type: @@ -80,23 +77,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - workspaceDataFilters: [] - workspaces: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -105,15 +100,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -128,21 +122,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -151,15 +145,35 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + allowedOrigins: [] + dataCenter: '' + earlyAccess: enableAlerting + earlyAccessValues: + - enableAlerting + - enableSmtp + - enablePreAggregationDatasets + - enableScheduling + - enableCompositeGrain + - enableUserManagement + - enableRawExports + - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex + region: '' + id: python-sdk-dex + type: organization + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '564' Content-Type: @@ -172,42 +186,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com - allowedOrigins: [] - earlyAccess: enableAlerting - earlyAccessValues: - - enableAlerting - - enableSmtp - - enablePreAggregationDatasets - - enableScheduling - - enableCompositeGrain - - enableUserManagement - - enableRawExports - - enableFlexibleDashboardLayout - region: '' - dataCenter: '' - id: python-sdk-dex - type: organization - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -239,379 +232,22 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo + - automations: [] + customApplicationSettings: [] + filterViews: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: budget - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels - GROUP BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaigns - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - locale: en-US - translations: - - locale: cs-CZ - sourceColumn: geo__state__location_cz - sourceColumn: state - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: customers - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: product_id - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: product_name - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: products - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -660,13 +296,13 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -845,24 +481,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' + description: '' id: product_and_category title: Product & Category - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: [] filterContexts: - content: filters: @@ -882,9 +518,9 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: @@ -898,9 +534,10 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -922,9 +559,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -980,9 +617,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1930,96 +1567,452 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: [] - memoryItems: [] - permissions: - - assignee: - id: demo2 - type: user - name: ANALYZE - - assignee: - id: demoGroup - type: userGroup - name: VIEW - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE - settings: [] - userDataFilters: [] - customApplicationSettings: [] - automations: [] - filterViews: [] - - id: demo_west - name: Demo West - model: ldm: - datasets: [] - dateInstances: [] - datasetExtensions: - - id: order_lines - workspaceDataFilterReferences: - - filterColumn: wdf__state - filterColumnDataType: STRING - filterId: - id: wdf__state - type: workspaceDataFilter + 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 + locale: en-US + sourceColumn: geo__state__location + sourceColumnDataType: STRING + tags: + - Customers + title: Location + translations: + - locale: cs-CZ + sourceColumn: geo__state__location_cz + 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: - analyticalDashboards: [] analyticalDashboardExtensions: - id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + analyticalDashboards: [] attributeHierarchies: [] dashboardPlugins: [] + exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - exportDefinitions: [] - memoryItems: [] + 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: [] - hierarchyPermissions: [] settings: [] userDataFilters: [] + - automations: [] customApplicationSettings: [] - automations: [] filterViews: [] - - id: demo_west_california - name: Demo West California + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: - analyticalDashboards: [] analyticalDashboardExtensions: [] + analyticalDashboards: [] attributeHierarchies: [] dashboardPlugins: [] + exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - exportDefinitions: [] - memoryItems: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] userDataFilters: [] - customApplicationSettings: [] - automations: [] - filterViews: [] headers: Accept-Encoding: - br, gzip, deflate @@ -2029,15 +2022,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2046,21 +2038,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -2071,40 +2063,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -3919,9 +3880,38 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -3953,9 +3943,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -3967,6 +3955,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -3977,54 +3966,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -4065,200 +4054,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -4280,9 +4270,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -4338,9 +4328,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -4723,9 +4713,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -5288,207 +5278,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -5499,92 +5537,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -5596,51 +5585,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -5650,10 +5640,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -5665,12 +5655,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -5684,9 +5673,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -5698,18 +5687,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -5718,12 +5707,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -5739,15 +5729,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -5756,15 +5745,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_user_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_user_data_filters.yaml index 2459869c2..50a8974c0 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_user_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_user_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: userDataFilters: - id: user_data_filter @@ -21,15 +18,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: &id001 - PLACEHOLDER Expires: @@ -39,21 +35,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -64,15 +60,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: + - id: user_data_filter + maql: 'FALSE' + title: youwillnotsee + user: + id: demo + type: user headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '121' Content-Type: @@ -85,28 +87,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: - - id: user_data_filter - maql: 'FALSE' - title: youwillnotsee - user: - id: demo - type: user + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -138,9 +133,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -152,6 +145,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -162,54 +156,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -250,200 +244,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -465,9 +460,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -523,9 +518,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -908,9 +903,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1473,207 +1468,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -1684,92 +1727,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -1781,51 +1775,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -1835,10 +1830,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -1850,12 +1845,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -1869,9 +1863,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -1883,18 +1877,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -1903,12 +1897,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -1924,15 +1919,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1941,15 +1935,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml index 03ff73b5e..1145e1e12 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing?include=workspaces response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e891e638ea0a97814bca75003c3 headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -32,32 +33,27 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 1b834e5b0dd18f6d06c23fd347ee7517 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces body: data: - id: demo_testing - type: workspace attributes: name: demo_testing + id: demo_testing + type: workspace headers: Accept: - application/json @@ -69,15 +65,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + name: demo_testing + id: demo_testing + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '204' Content-Type: @@ -90,28 +92,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: demo_testing - id: demo_testing - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_testing + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -122,40 +117,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -167,46 +131,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -255,143 +219,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -416,19 +380,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -436,15 +400,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -914,9 +878,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1844,370 +1808,41 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: budget - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaigns - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: state - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: customers - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - Order lines - workspaceDataFilterColumns: - - dataType: STRING - name: wdf__region - - dataType: STRING - name: wdf__state - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: product_id - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: product_name - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: products - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -2215,54 +1850,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -2303,200 +1938,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -2518,9 +2154,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -2575,9 +2211,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") @@ -2957,9 +2593,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3522,8 +3158,365 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: [] - memoryItems: [] + 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 + - 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 headers: Accept-Encoding: - br, gzip, deflate @@ -3533,15 +3526,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3550,21 +3542,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -3575,40 +3567,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_testing?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -3620,46 +3581,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -3708,143 +3669,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -3869,19 +3830,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -3889,15 +3850,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -4367,9 +4328,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -5291,9 +5252,38 @@ interactions: tags: - Date title: Date + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -5325,9 +5315,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -5339,6 +5327,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -5349,54 +5338,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -5437,200 +5426,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -5652,9 +5642,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -5710,9 +5700,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -6095,9 +6085,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -6660,207 +6650,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -6871,92 +6909,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -6968,51 +6957,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -7022,10 +7012,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -7037,12 +7027,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -7056,9 +7045,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -7070,18 +7059,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -7090,12 +7079,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -7111,15 +7101,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -7128,15 +7117,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml index e624a55a6..2cd0b3437 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -77,9 +45,37 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: [] headers: @@ -91,15 +87,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -108,21 +103,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -133,15 +128,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK + body: + string: + workspaceDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '27' Content-Type: @@ -154,22 +149,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - workspaceDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: - columnName: wdf__region @@ -209,15 +203,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -226,21 +219,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -251,37 +244,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -313,9 +278,36 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -347,9 +339,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -361,6 +351,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -371,54 +362,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -459,200 +450,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name - type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + type: label filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -674,9 +666,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -732,9 +724,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1117,9 +1109,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1682,207 +1674,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -1893,92 +1933,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -1990,51 +1981,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2044,10 +2036,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2059,12 +2051,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2078,9 +2069,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2092,18 +2083,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2112,12 +2103,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2133,15 +2125,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2150,15 +2141,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml index 8c8c624a7..1c65cc6fa 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -104,46 +69,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -192,144 +157,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -354,19 +319,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -374,15 +339,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -852,9 +817,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1859,9 +1824,39 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: [] workspaces: [] @@ -1874,15 +1869,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -1891,21 +1885,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: null headers: Accept: @@ -1916,15 +1910,16 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 200 - message: OK + body: + string: + workspaceDataFilters: [] + workspaces: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '43' Content-Type: @@ -1937,23 +1932,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - workspaceDataFilters: [] - workspaces: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -1985,375 +1978,22 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo + - automations: [] + customApplicationSettings: [] + filterViews: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: Budget - sourceColumnDataType: NUMERIC - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: budget - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels - GROUP BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaigns - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: state - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: customers - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - 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 - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: product_id - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: product_name - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: products - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -2361,54 +2001,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -2449,200 +2089,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' - analyticalDashboardExtensions: [] attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 + exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -2664,9 +2305,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -2722,9 +2363,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -3107,9 +2748,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3672,8 +3313,372 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - exportDefinitions: [] - memoryItems: [] + 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 @@ -3683,85 +3688,73 @@ interactions: id: demoGroup type: userGroup name: VIEW - hierarchyPermissions: - - assignee: - id: demo2 - type: user - name: MANAGE - - assignee: - id: demoGroup - type: userGroup - name: ANALYZE settings: [] userDataFilters: [] + - automations: [] customApplicationSettings: [] - automations: [] filterViews: [] - - id: demo_west - name: Demo West + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] - datasetExtensions: - - id: order_lines - workspaceDataFilterReferences: - - filterColumn: wdf__state - filterColumnDataType: STRING - filterId: - id: wdf__state - type: workspaceDataFilter analytics: - analyticalDashboards: [] analyticalDashboardExtensions: - id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + analyticalDashboards: [] attributeHierarchies: [] dashboardPlugins: [] + exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - exportDefinitions: [] - memoryItems: [] + 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: [] - hierarchyPermissions: [] settings: [] userDataFilters: [] + - automations: [] customApplicationSettings: [] - automations: [] filterViews: [] - - id: demo_west_california - name: Demo West California + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: - analyticalDashboards: [] analyticalDashboardExtensions: [] + analyticalDashboards: [] attributeHierarchies: [] dashboardPlugins: [] + exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - exportDefinitions: [] - memoryItems: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] userDataFilters: [] - customApplicationSettings: [] - automations: [] - filterViews: [] headers: Accept-Encoding: - br, gzip, deflate @@ -3771,15 +3764,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -3788,21 +3780,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -3813,40 +3805,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -3902,46 +3863,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -3990,144 +3951,144 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -4152,19 +4113,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -4172,15 +4133,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -4650,9 +4611,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -5657,9 +5618,38 @@ interactions: permissions: [] settings: [] userDataFilters: [] + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -5691,9 +5681,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -5705,6 +5693,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -5715,54 +5704,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -5803,200 +5792,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -6018,9 +6008,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -6076,9 +6066,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -6461,9 +6451,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -7026,207 +7016,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -7237,92 +7275,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -7334,51 +7323,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -7388,10 +7378,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -7403,12 +7393,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -7422,9 +7411,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -7436,18 +7425,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -7456,12 +7445,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -7477,15 +7467,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -7494,15 +7483,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_user_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_user_data_filters.yaml index 2d7cd3c0d..b0e5de049 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_user_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_user_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -14,15 +11,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -36,22 +33,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters body: null headers: Accept: @@ -62,15 +58,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/userDataFilters response: - status: - code: 200 - message: OK + body: + string: + userDataFilters: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '22' Content-Type: @@ -83,22 +79,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - userDataFilters: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization body: null headers: Accept-Encoding: @@ -107,15 +102,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 302 - message: Found + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '0' Content-Type: @@ -130,21 +124,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -153,44 +147,15 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '564' - Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -201,61 +166,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -264,44 +211,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -312,9 +275,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml index d08fb1d41..5aafd6a0c 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -60,46 +25,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -148,143 +113,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -309,19 +274,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -329,15 +294,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -807,9 +772,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1737,55 +1702,39 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json - DATE: *id001 + - application/json + DATE: &id001 + - PLACEHOLDER Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -1794,44 +1743,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -1842,38 +1807,20 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + Content-Length: + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' @@ -1882,9 +1829,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -1893,8 +1838,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo?exclude=ACTIVITY_INFO + response: body: string: analytics: @@ -1906,46 +1868,46 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: campaign @@ -1994,143 +1956,143 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' description: '' id: product_and_category @@ -2155,19 +2117,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2175,15 +2137,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2653,9 +2615,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3583,55 +3545,38 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -3640,44 +3585,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -3688,9 +3649,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml index 56e71d4ca..d446996d5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: null headers: Accept: @@ -14,38 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '603' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -77,33 +45,15 @@ interactions: workspace: id: demo_west_california type: workspace - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '603' Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -111,16 +61,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters + response: body: string: workspaceDataFilters: @@ -152,55 +120,36 @@ interactions: workspace: id: demo_west_california type: workspace - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '603' Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -209,44 +158,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -257,61 +222,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -320,44 +267,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -368,9 +331,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml index bc8a79444..58ae5a284 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: workspaceDataFilters: @@ -104,48 +69,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -188,7 +153,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -200,146 +165,146 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -351,7 +316,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -361,7 +326,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -374,19 +339,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -394,15 +359,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -412,7 +377,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -421,7 +386,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -431,7 +396,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -441,7 +406,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -451,7 +416,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -460,7 +425,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -469,7 +434,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -479,7 +444,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -489,7 +454,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -499,7 +464,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -509,7 +474,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -519,7 +484,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -529,7 +494,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -539,7 +504,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -550,7 +515,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -560,7 +525,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -570,7 +535,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -580,7 +545,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -589,7 +554,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -598,7 +563,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -607,7 +572,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -616,7 +581,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -625,7 +590,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -634,7 +599,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -699,7 +664,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -775,7 +740,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -854,7 +819,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -913,7 +878,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -970,7 +935,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -988,9 +953,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1023,7 +988,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1098,7 +1063,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1155,7 +1120,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1254,7 +1219,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1310,7 +1275,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1349,7 +1314,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1405,7 +1370,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1473,7 +1438,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1530,7 +1495,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1587,7 +1552,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2035,33 +2000,15 @@ interactions: permissions: [] settings: [] userDataFilters: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Encoding: - br Content-Type: - application/json - DATE: *id001 + DATE: &id001 + - PLACEHOLDER Expires: - '0' Pragma: @@ -2069,7 +2016,7 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Transfer-Encoding: - chunked Vary: @@ -2080,8 +2027,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces + response: body: string: workspaceDataFilters: @@ -2137,48 +2101,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2221,7 +2185,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2233,146 +2197,146 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and - Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and + Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2384,7 +2348,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2394,7 +2358,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2407,19 +2371,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2427,15 +2391,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2445,7 +2409,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2454,7 +2418,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2464,7 +2428,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2474,7 +2438,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2484,7 +2448,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2493,7 +2457,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2502,7 +2466,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2512,7 +2476,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2522,7 +2486,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2532,7 +2496,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2542,7 +2506,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2552,7 +2516,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2562,7 +2526,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2572,7 +2536,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2583,7 +2547,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2593,7 +2557,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2603,7 +2567,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2613,7 +2577,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2622,7 +2586,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2631,7 +2595,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2640,7 +2604,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2649,7 +2613,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2658,7 +2622,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2667,7 +2631,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2732,7 +2696,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2808,7 +2772,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2887,7 +2851,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2946,7 +2910,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3003,7 +2967,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3021,9 +2985,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3056,7 +3020,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3131,7 +3095,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3188,7 +3152,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3287,7 +3251,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3343,7 +3307,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3382,7 +3346,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3438,7 +3402,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3506,7 +3470,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3563,7 +3527,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3620,7 +3584,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:15 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -4068,55 +4032,38 @@ interactions: permissions: [] settings: [] userDataFilters: [] - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -4125,44 +4072,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -4173,61 +4136,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '0' + - '564' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -4236,44 +4181,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -4284,9 +4245,40 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '564' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml index 58f8ac05c..bd4038c05 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces body: null headers: Accept: @@ -14,15 +11,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Demo + id: demo + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces headers: Cache-Control: - max-age=5, private - Connection: - - keep-alive Content-Length: - '199' Content-Type: @@ -32,28 +35,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo - id: demo - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: null headers: Accept: @@ -64,40 +60,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: analytics: @@ -109,48 +74,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -193,7 +158,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -205,145 +170,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -355,7 +320,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -365,7 +330,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -378,19 +343,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -398,15 +363,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -416,7 +381,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -425,7 +390,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -435,7 +400,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -445,7 +410,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -455,7 +420,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -464,7 +429,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -473,7 +438,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -483,7 +448,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -493,7 +458,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -503,7 +468,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -513,7 +478,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -523,7 +488,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -533,7 +498,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -543,7 +508,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -554,7 +519,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -564,7 +529,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -574,7 +539,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -584,7 +549,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -593,7 +558,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -602,7 +567,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -611,7 +576,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -620,7 +585,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -629,7 +594,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -638,7 +603,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -703,7 +668,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -779,7 +744,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -858,7 +823,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -917,7 +882,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -974,7 +939,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -992,9 +957,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1027,7 +992,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1102,7 +1067,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1159,7 +1124,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1258,7 +1223,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1314,7 +1279,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1353,7 +1318,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1409,7 +1374,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1477,7 +1442,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1534,7 +1499,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1591,7 +1556,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -1962,55 +1927,38 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization - body: null - headers: - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' + Content-Encoding: + - br Content-Type: - - application/vnd.gooddata.api+json + - application/json DATE: *id001 Expires: - '0' - Location: - - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex body: null headers: Accept-Encoding: @@ -2019,44 +1967,60 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/organization response: - status: - code: 200 - message: OK + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '564' + - '0' Content-Type: - application/vnd.gooddata.api+json DATE: *id001 Expires: - '0' + Location: + - /api/v1/entities/admin/organizations/python-sdk-dex Pragma: - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 302 + message: Found + - request: + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex + response: body: string: data: attributes: - name: Python SDK Dex - hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com allowedOrigins: [] + dataCenter: '' earlyAccess: enableAlerting earlyAccessValues: - enableAlerting @@ -2067,64 +2031,43 @@ interactions: - enableUserManagement - enableRawExports - enableFlexibleDashboardLayout + hostname: python-sdk-dex.dev-latest.stg11.panther.intgdc.com + name: Python SDK Dex region: '' - dataCenter: '' id: python-sdk-dex type: organization links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/admin/organizations/python-sdk-dex - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate Content-Length: - - '199' + - '564' Content-Type: - - application/json + - application/vnd.gooddata.api+json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo - id: demo - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo body: null headers: Accept: @@ -2135,30 +2078,30 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Demo + id: demo + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo?include=workspaces headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + - max-age=5, private + Content-Length: + - '199' Content-Type: - application/json DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -2167,8 +2110,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo + response: body: string: analytics: @@ -2180,48 +2140,48 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2264,7 +2224,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2276,145 +2236,145 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2426,7 +2386,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2436,7 +2396,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2449,19 +2409,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' description: '' id: campaign_name_filter @@ -2469,15 +2429,15 @@ interactions: - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' description: '' id: region_filter @@ -2487,7 +2447,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2496,7 +2456,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2506,7 +2466,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2516,7 +2476,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2526,7 +2486,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2535,7 +2495,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2544,7 +2504,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2554,7 +2514,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2564,7 +2524,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2574,7 +2534,7 @@ interactions: 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}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2584,7 +2544,7 @@ interactions: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2594,7 +2554,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2604,7 +2564,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2614,7 +2574,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2625,7 +2585,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2635,7 +2595,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2645,7 +2605,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2655,7 +2615,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2664,7 +2624,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2673,7 +2633,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2682,7 +2642,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2691,7 +2651,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2700,7 +2660,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2709,7 +2669,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2774,7 +2734,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2850,7 +2810,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2929,7 +2889,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -2988,7 +2948,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3045,7 +3005,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3063,9 +3023,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -3098,7 +3058,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3173,7 +3133,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3230,7 +3190,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3329,7 +3289,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3385,7 +3345,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3424,7 +3384,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3480,7 +3440,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3548,7 +3508,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3605,7 +3565,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -3662,7 +3622,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user @@ -4033,137 +3993,118 @@ interactions: tags: - Date title: Date - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 404 - message: Not Found headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '172' + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Type: - - application/problem+json + - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 09c2f8924707104e197f09159c37f74a + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces - body: - data: - id: demo_cs - type: workspace - attributes: - name: Demo (cs) + body: null headers: Accept: - application/json Accept-Encoding: - br, gzip, deflate - Content-Type: - - application/json X-GDC-VALIDATE-RELATIONS: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs?include=workspaces response: - status: - code: 201 - message: Created + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e97c092925359dd8dfd9a8f2212 headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive + - max-age=5, private Content-Length: - - '191' + - '172' Content-Type: - - application/json + - application/problem+json DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Demo (cs) - id: demo_cs - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters - body: null + body: + data: + attributes: + name: Demo (cs) + id: demo_cs + type: workspace headers: Accept: - application/json Accept-Encoding: - br, gzip, deflate + Content-Type: + - application/json X-GDC-VALIDATE-RELATIONS: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Demo (cs) + id: demo_cs + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '603' + - '191' Content-Type: - application/json DATE: *id001 @@ -4174,16 +4115,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters + response: body: string: workspaceDataFilters: @@ -4215,9 +4174,36 @@ interactions: workspace: id: demo_west_california type: workspace + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '603' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters body: workspaceDataFilters: - columnName: wdf__region @@ -4264,15 +4250,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaceDataFilters response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -4281,388 +4266,24 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_cs body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - sourceColumnDataType: STRING - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - sourceColumnDataType: STRING - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: "Rozpo\u010Det" - sourceColumnDataType: NUMERIC - description: "Rozpo\u010Det" - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - sourceColumnDataType: NUMERIC - description: Spend - tags: - - Campaign channels - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaign_channels - type: dataSource - path: - - demo - - campaign_channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category - references: - - identifier: - id: campaign_channels - type: dataset - multivalue: false - sources: - - column: campaign_channel_id - target: - id: campaign_channel_id - type: attribute - dataType: STRING - title: Campaign channels per category - description: Campaign channels per categories - attributes: [] - facts: [] - aggregatedFacts: - - id: budget_agg - sourceColumn: budget - sourceFactReference: - operation: SUM - reference: - id: budget - type: fact - sourceColumnDataType: INT - description: Budget Agg - tags: - - Campaign channels per category - precedence: 1 - sql: - dataSourceId: demo-test-ds - statement: SELECT category, SUM(budget) FROM campaign_channels GROUP - BY category - tags: - - Campaign channels per category - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - sourceColumnDataType: INT - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - sourceColumnDataType: STRING - description: Campaign name - tags: - - Campaigns - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: campaigns - type: dataSource - path: - - demo - - campaigns - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - sourceColumnDataType: INT - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - sourceColumnDataType: STRING - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - sourceColumnDataType: STRING - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - sourceColumnDataType: STRING - description: Location - tags: - - Customers - valueType: GEO - sourceColumn: state - title: State - sourceColumnDataType: STRING - description: State - tags: - - Customers - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: customers - type: dataSource - path: - - demo - - customers - tags: - - Customers - - grain: - - id: order_line_id - type: attribute - id: order_lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - - identifier: - id: customers - type: dataset - multivalue: false - sources: - - column: customer_id - target: - id: customer_id - type: attribute - dataType: INT - - identifier: - id: date - type: dataset - multivalue: false - sources: - - column: date - target: - id: date - type: date - dataType: DATE - - identifier: - id: products - type: dataset - multivalue: false - sources: - - column: product_id - target: - id: product_id - type: attribute - dataType: INT - title: Order lines - description: Order lines - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - sourceColumnDataType: STRING - description: Order id - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - sourceColumnDataType: STRING - description: Order line id - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - sourceColumnDataType: STRING - description: Order status - tags: - - Order lines - facts: - - id: price - sourceColumn: price - title: Price - sourceColumnDataType: NUMERIC - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - sourceColumnDataType: NUMERIC - description: Quantity - tags: - - Order lines - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - tags: - - Order lines - workspaceDataFilterColumns: - - dataType: STRING - name: wdf__region - - dataType: STRING - name: wdf__state - workspaceDataFilterReferences: - - filterColumn: wdf__region - filterColumnDataType: STRING - filterId: - id: wdf__region_demo_cs - type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - description: Products - attributes: - - id: product_id - labels: [] - sourceColumn: product_id - title: Product id - sourceColumnDataType: INT - description: Product id - tags: - - Products - - id: product_name - labels: [] - sourceColumn: product_name - title: Product name - sourceColumnDataType: STRING - description: Product name - tags: - - Products - - id: products.category - labels: [] - sourceColumn: category - title: Category - sourceColumnDataType: STRING - description: Category - tags: - - Products - facts: [] - aggregatedFacts: [] - dataSourceTableId: - dataSourceId: demo-test-ds - id: products - type: dataSource - path: - - demo - - products - tags: - - Products - dateInstances: - - granularities: - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - id: date - title: Date - description: '' - tags: - - Date analytics: + analyticalDashboardExtensions: [] analyticalDashboards: - content: filterContextRef: @@ -4670,58 +4291,58 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: null + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: null + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: campaign permissions: - - name: VIEW - assigneeRule: + - assigneeRule: type: allWorkspaceUsers + name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -4754,452 +4375,453 @@ interactions: type: dashboardPlugin version: '2' version: '2' - id: dashboard_plugin - title: Dashboard plugin - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: dashboard_plugin + title: Dashboard plugin - content: filterContextRef: identifier: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: null - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: null + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: product_and_category - title: Product & Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' - analyticalDashboardExtensions: [] + id: product_and_category + title: Product & Category attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' - id: dashboard_plugin_1 - title: dashboard_plugin_1 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 - content: url: https://www.example.com version: '2' - id: dashboard_plugin_2 - title: dashboard_plugin_2 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user 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 + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - id: amount_of_active_customers - title: '# of Active Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_orders + title: '# of Orders' - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - id: amount_of_top_customers - title: '# of Top Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: amount_of_top_customers + title: '# of Top Customers' - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: amount_of_valid_orders - title: '# of Valid Orders' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - id: order_amount - title: Order Amount - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: order_amount + title: Order Amount - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - id: percent_revenue - title: '% Revenue' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue + title: '% Revenue' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product + title: '% Revenue per Product' - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - id: revenue - title: Revenue - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user description: '' + id: revenue + title: Revenue - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - id: revenue-clothing - title: Revenue (Clothing) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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% - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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 - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + 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) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - content: buckets: @@ -5259,12 +4881,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: campaign_spend - title: Campaign Spend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: campaign_spend + title: Campaign Spend - content: buckets: - items: @@ -5335,12 +4957,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: customers_trend - title: Customers Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: customers_trend + title: Customers Trend - content: buckets: - items: @@ -5414,12 +5036,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' - content: buckets: - items: @@ -5473,12 +5095,12 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: percentage_of_customers_by_region + title: Percentage of Customers by Region - content: buckets: - items: @@ -5530,12 +5152,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - id: product_breakdown - title: Product Breakdown - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_breakdown + title: Product Breakdown - content: buckets: - items: @@ -5548,9 +5170,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -5583,12 +5205,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - id: product_categories_pie_chart - title: Product Categories Pie Chart - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_categories_pie_chart + title: Product Categories Pie Chart - content: buckets: - items: @@ -5658,12 +5280,12 @@ interactions: visible: false version: '2' visualizationUrl: local:column - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) - content: buckets: - items: @@ -5715,12 +5337,12 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - id: product_saleability - title: Product Saleability - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: product_saleability + title: Product Saleability - content: buckets: - items: @@ -5814,12 +5436,12 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category - content: buckets: - items: @@ -5870,12 +5492,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - id: revenue_by_category_trend - title: Revenue by Category Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_category_trend + title: Revenue by Category Trend - content: buckets: - items: @@ -5909,12 +5531,12 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - id: revenue_by_product - title: Revenue by Product - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_by_product + title: Revenue by Product - content: buckets: - items: @@ -5965,12 +5587,12 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign - content: buckets: - items: @@ -6033,12 +5655,12 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - id: revenue_trend - title: Revenue Trend - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: revenue_trend + title: Revenue Trend - content: buckets: - items: @@ -6090,12 +5712,12 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_customers - title: Top 10 Customers - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user + id: top_10_customers + title: Top 10 Customers - content: buckets: - items: @@ -6147,14 +5769,377 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - id: top_10_products - title: Top 10 Products - createdAt: 2026-03-25 09:16 + createdAt: 2026-03-30 13:45 createdBy: id: admin type: user - exportDefinitions: [] - memoryItems: [] + 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: "Rozpo\u010Det" + id: budget + sourceColumn: budget + sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: "Rozpo\u010Det" + - 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_demo_cs + 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 headers: Accept-Encoding: - br, gzip, deflate @@ -6164,15 +6149,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo_cs response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -6181,21 +6165,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale body: null headers: Accept-Encoding: @@ -6204,15 +6188,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -6223,21 +6206,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale body: null headers: Accept-Encoding: @@ -6246,15 +6229,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -6265,21 +6247,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale body: null headers: Accept: @@ -6290,15 +6272,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e98d440d69a64c856eb7b93b620 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -6311,34 +6297,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 8383fb8153ff6e4daa559d35616abc73 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings body: data: - type: workspaceSetting - id: locale attributes: content: value: cs-CZ type: LOCALE + id: locale + type: workspaceSetting headers: Accept: - application/json @@ -6350,15 +6331,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: cs-CZ + type: LOCALE + id: locale + meta: + origin: + originId: demo_cs + originType: NATIVE + type: workspaceSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '310' Content-Type: @@ -6371,34 +6364,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: cs-CZ - type: LOCALE - id: locale - meta: - origin: - originId: demo_cs - originType: NATIVE - type: workspaceSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/locale + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale body: null headers: Accept: @@ -6409,15 +6389,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e98c10220818972909c167aa513 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -6430,34 +6414,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 08689621d179032578075347fca6793c + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings body: data: - type: workspaceSetting - id: formatLocale attributes: content: value: cs-CZ type: FORMAT_LOCALE + id: formatLocale + type: workspaceSetting headers: Accept: - application/json @@ -6469,15 +6448,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: cs-CZ + type: FORMAT_LOCALE + id: formatLocale + meta: + origin: + originId: demo_cs + originType: NATIVE + type: workspaceSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '329' Content-Type: @@ -6490,34 +6481,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: cs-CZ - type: FORMAT_LOCALE - id: formatLocale - meta: - origin: - originId: demo_cs - originType: NATIVE - type: workspaceSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_cs/workspaceSettings/formatLocale + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -6549,9 +6527,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -6563,6 +6539,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -6573,54 +6550,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -6661,200 +6638,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -6876,9 +6854,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -6934,9 +6912,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -7319,9 +7297,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -7884,207 +7862,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -8095,92 +8121,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -8192,51 +8169,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -8246,10 +8224,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -8261,12 +8239,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -8280,9 +8257,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -8294,18 +8271,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -8314,12 +8291,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -8335,15 +8313,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -8352,15 +8329,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_invalid.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_invalid.yaml index 1831f9002..7a26d5a2c 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_invalid.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_invalid.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces body: null headers: Accept: @@ -14,34 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '468' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -63,43 +35,19 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + - max-age=5, private + Content-Length: + - '468' Content-Type: - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache + DATE: &id001 + - PLACEHOLDER Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -108,8 +56,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -155,48 +120,53 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Length: - - '468' + - '255' Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + response: body: string: data: @@ -218,43 +188,18 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + - max-age=5, private + Content-Length: + - '468' Content-Type: - application/json DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -263,8 +208,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -310,48 +272,53 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Length: - - '468' + - '255' Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + response: body: string: data: @@ -373,3 +340,29 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '468' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_valid.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_valid.yaml index f4b8701a1..0beed36d5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_valid.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_update_workspace_valid.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces body: null headers: Accept: @@ -14,34 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - max-age=5, private - Connection: - - keep-alive - Content-Length: - - '468' - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -63,43 +35,19 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br + - max-age=5, private + Content-Length: + - '468' Content-Type: - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache + DATE: &id001 + - PLACEHOLDER Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked + - max-age=31536000; includeSubDomains; preload Vary: - Accept-Encoding - Origin @@ -108,8 +56,25 @@ interactions: X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + response: body: string: data: @@ -155,48 +120,53 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Length: - - '468' + - '255' Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + response: body: string: data: @@ -218,20 +188,43 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '468' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west body: data: - id: demo_west - type: workspace attributes: name: Test + id: demo_west relationships: parent: data: id: demo type: workspace + type: workspace headers: Accept: - application/json @@ -243,15 +236,21 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west response: - status: - code: 200 - message: OK + body: + string: + data: + attributes: + name: Test + id: demo_west + type: workspace + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '190' Content-Type: @@ -264,28 +263,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - name: Test - id: demo_west - type: workspace - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -296,40 +288,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -375,48 +336,53 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 headers: Cache-Control: - - max-age=5, private - Connection: - - keep-alive + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br Content-Length: - - '463' + - '262' Content-Type: - application/json DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + response: body: string: data: @@ -438,9 +404,32 @@ interactions: type: workspace links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west?include=workspaces + headers: + Cache-Control: + - max-age=5, private + Content-Length: + - '463' + Content-Type: + - application/json + DATE: *id001 + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces body: workspaceDataFilters: - columnName: wdf__region @@ -472,9 +461,7 @@ interactions: id: demo_west_california type: workspace workspaces: - - id: demo - name: Demo - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: @@ -486,6 +473,7 @@ interactions: id: demoGroup type: userGroup name: ANALYZE + id: demo model: analytics: analyticalDashboardExtensions: [] @@ -496,54 +484,54 @@ interactions: id: campaign_name_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - header: - title: Spend breakdown and Revenue + - 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: - - type: IDashboardLayoutItem - size: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Campaign Spend description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: campaign_spend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Campaign Spend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue per $ vs Spend by Campaign description: '' + drills: [] ignoreDashboardFilters: [] insight: identifier: id: revenue_per_usd_vs_spend_by_campaign type: visualizationObject - drills: [] properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout version: '2' - id: campaign - title: Campaign description: '' + id: campaign permissions: - assigneeRule: type: allWorkspaceUsers name: VIEW + title: Campaign - content: filterContextRef: identifier: @@ -584,200 +572,201 @@ interactions: id: region_filter type: filterContext layout: - type: IDashboardLayout sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + - items: + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Top 10 Products - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: top_10_products type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Top 10 Products + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Revenue Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: revenue_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Revenue Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Customers Trend - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: customers_trend type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Customers Trend + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Categories Pie Chart - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_categories_pie_chart type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Categories Pie Chart + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Breakdown - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_breakdown type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Breakdown + type: insight + - size: xl: gridWidth: 6 + type: IDashboardLayoutItem widget: - type: insight - title: Product Saleability - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: product_saleability type: visualizationObject - drills: [] properties: {} - - type: IDashboardLayoutItem - size: + title: Product Saleability + type: insight + - size: xl: gridWidth: 12 + type: IDashboardLayoutItem widget: - type: insight - title: '% Revenue per Product by Customer and Category' - description: '' - ignoreDashboardFilters: [] dateDataSet: identifier: id: date type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] insight: identifier: id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - drills: [] 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 - description: '' attributeHierarchies: [] dashboardPlugins: - content: url: https://www.example.com version: '2' + description: Testing record dashboard_plugin_1 id: dashboard_plugin_1 title: dashboard_plugin_1 - description: Testing record 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 - description: Testing record dashboard_plugin_2 exportDefinitions: [] filterContexts: - content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true version: '2' + description: '' id: campaign_name_filter title: filterContext - description: '' - content: filters: - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: region type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true version: '2' + description: '' id: region_filter title: filterContext - description: '' + memoryItems: [] metrics: - content: format: '#,##0' @@ -799,9 +788,9 @@ interactions: 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' - description: '' - content: format: $#,##0 maql: SELECT SUM({fact/spend}) @@ -857,9 +846,9 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) + description: '' id: revenue title: Revenue - description: '' - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} @@ -1242,9 +1231,9 @@ interactions: identifier: id: revenue type: metric + format: '#,##0.00%' localIdentifier: 162b857af49d45769bc12604a5c192b9 title: '% Revenue' - format: '#,##0.00%' localIdentifier: measures - items: - attribute: @@ -1807,207 +1796,255 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - memoryItems: [] ldm: datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sources: - - column: campaign_id - target: - id: campaign_id - type: attribute - dataType: INT - title: Campaign channels - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: campaign_channel_id + - description: Campaign channel id + id: campaign_channel_id labels: [] sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id sourceColumnDataType: STRING tags: - Campaign channels - - id: campaign_channels.category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Campaign channels - - id: type + title: Category + - description: Type + id: type labels: [] sourceColumn: type - title: Type - description: Type sourceColumnDataType: STRING tags: - Campaign channels + title: Type dataSourceTableId: dataSourceId: demo-test-ds id: campaign_channels - type: dataSource path: - demo - campaign_channels + type: dataSource description: Campaign channels facts: - - id: budget + - description: Budget + id: budget sourceColumn: budget - title: Budget - description: Budget sourceColumnDataType: NUMERIC tags: - Campaign channels - - id: spend + title: Budget + - description: Spend + id: spend sourceColumn: spend - title: Spend - description: Spend sourceColumnDataType: NUMERIC tags: - Campaign channels - tags: - - Campaign channels - - grain: [] - id: campaign_channels_per_category + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: - id: campaign_channels + id: campaigns type: dataset multivalue: false sources: - - column: campaign_channel_id + - column: campaign_id + dataType: INT target: - id: campaign_channel_id + id: campaign_id type: attribute - dataType: STRING - title: Campaign channels per category - aggregatedFacts: - - id: budget_agg + 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 - description: Budget Agg - sourceColumnDataType: INT 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 - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - aggregatedFacts: [] + title: Campaign channels per category + - aggregatedFacts: [] attributes: - - id: campaign_id + - description: Campaign id + id: campaign_id labels: [] sourceColumn: campaign_id - title: Campaign id - description: Campaign id sourceColumnDataType: INT tags: - Campaigns - - id: campaign_name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] sourceColumn: campaign_name - title: Campaign name - description: Campaign name sourceColumnDataType: STRING tags: - Campaigns + title: Campaign name dataSourceTableId: dataSourceId: demo-test-ds id: campaigns - type: dataSource path: - demo - campaigns + type: dataSource description: Campaigns facts: [] - tags: - - Campaigns - - grain: - - id: customer_id + grain: + - id: campaign_id type: attribute - id: customers + id: campaigns references: [] - title: Customers - aggregatedFacts: [] + tags: + - Campaigns + title: Campaigns + - aggregatedFacts: [] attributes: - - id: customer_id + - description: Customer id + id: customer_id labels: [] sourceColumn: customer_id - title: Customer id - description: Customer id sourceColumnDataType: INT tags: - Customers - - id: customer_name + title: Customer id + - description: Customer name + id: customer_name labels: [] sourceColumn: customer_name - title: Customer name - description: Customer name sourceColumnDataType: STRING tags: - Customers - - id: region + title: Customer name + - description: Region + id: region labels: [] sourceColumn: region - title: Region - description: Region sourceColumnDataType: STRING tags: - Customers - - id: state + title: Region + - description: State + id: state labels: - - id: geo__state__location + - description: Location + id: geo__state__location sourceColumn: geo__state__location - title: Location - description: Location sourceColumnDataType: STRING tags: - Customers + title: Location valueType: GEO sourceColumn: state - title: State - description: State sourceColumnDataType: STRING tags: - Customers + title: State dataSourceTableId: dataSourceId: demo-test-ds id: customers - type: dataSource path: - demo - customers + type: dataSource description: Customers facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] tags: - Customers - - grain: + 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 @@ -2018,92 +2055,43 @@ interactions: multivalue: false sources: - column: campaign_id + dataType: INT target: id: campaign_id type: attribute - dataType: INT - identifier: id: customers type: dataset multivalue: false sources: - column: customer_id + dataType: INT target: id: customer_id type: attribute - dataType: INT - identifier: id: date type: dataset multivalue: false sources: - column: date + dataType: DATE target: id: date type: date - dataType: DATE - identifier: id: products type: dataset multivalue: false sources: - column: product_id + dataType: INT target: id: product_id type: attribute - dataType: INT - title: Order lines - aggregatedFacts: [] - attributes: - - id: order_id - labels: [] - sourceColumn: order_id - title: Order id - description: Order id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_line_id - labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id - sourceColumnDataType: STRING - tags: - - Order lines - - id: order_status - labels: [] - sourceColumn: order_status - title: Order status - description: Order status - sourceColumnDataType: STRING - tags: - - Order lines - dataSourceTableId: - dataSourceId: demo-test-ds - id: order_lines - type: dataSource - path: - - demo - - order_lines - description: Order lines - facts: - - id: price - sourceColumn: price - title: Price - description: Price - sourceColumnDataType: NUMERIC - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity - sourceColumnDataType: NUMERIC - tags: - - Order lines tags: - Order lines + title: Order lines workspaceDataFilterColumns: - dataType: STRING name: wdf__region @@ -2115,51 +2103,52 @@ interactions: filterId: id: wdf__region type: workspaceDataFilter - - grain: - - id: product_id - type: attribute - id: products - references: [] - title: Products - aggregatedFacts: [] + - aggregatedFacts: [] attributes: - - id: product_id + - description: Product id + id: product_id labels: [] sourceColumn: product_id - title: Product id - description: Product id sourceColumnDataType: INT tags: - Products - - id: product_name + title: Product id + - description: Product name + id: product_name labels: [] sourceColumn: product_name - title: Product name - description: Product name sourceColumnDataType: STRING tags: - Products - - id: products.category + title: Product name + - description: Category + id: products.category labels: [] sourceColumn: category - title: Category - description: Category sourceColumnDataType: STRING tags: - Products + title: Category dataSourceTableId: dataSourceId: demo-test-ds id: products - type: dataSource path: - demo - products + type: dataSource description: Products facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - granularities: + - description: '' + granularities: - DAY - WEEK - MONTH @@ -2169,10 +2158,10 @@ interactions: titleBase: '' titlePattern: '%titleBase - %granularityTitle' id: date - title: Date - description: '' tags: - Date + title: Date + name: Demo permissions: - assignee: id: demo2 @@ -2184,12 +2173,11 @@ interactions: name: VIEW settings: [] userDataFilters: [] - - id: demo_west - name: Demo West - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west model: analytics: analyticalDashboardExtensions: @@ -2203,9 +2191,9 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasetExtensions: - id: order_lines @@ -2217,18 +2205,18 @@ interactions: type: workspaceDataFilter datasets: [] dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] settings: [] userDataFilters: [] - - id: demo_west_california - name: Demo West California - automations: [] + - automations: [] customApplicationSettings: [] filterViews: [] hierarchyPermissions: [] + id: demo_west_california model: analytics: analyticalDashboardExtensions: [] @@ -2237,12 +2225,13 @@ interactions: dashboardPlugins: [] exportDefinitions: [] filterContexts: [] + memoryItems: [] metrics: [] visualizationObjects: [] - memoryItems: [] ldm: datasets: [] dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace @@ -2258,15 +2247,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -2275,15 +2263,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_workspace_list.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_workspace_list.yaml index c20e076ae..d43dd8720 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_workspace_list.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_workspace_list.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 body: null headers: Accept: @@ -14,41 +11,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/json - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -94,5 +59,38 @@ interactions: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo_west type: workspace links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces?include=workspaces&page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Length: + - '255' + Content-Type: + - application/json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/get_metadata_localization.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/get_metadata_localization.yaml index 23396489a..52d157ded 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/get_metadata_localization.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/get_metadata_localization.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve body: locale: fr-FR headers: @@ -17,41 +14,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/xml - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: filterContext + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_automations.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_automations.yaml index 3bd269165..08525f637 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_automations.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_automations.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo/automations body: null headers: Accept: @@ -14,10 +11,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/automations response: - status: - code: 200 - message: OK + body: + string: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -33,7 +31,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -41,20 +42,19 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: [] + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/notificationChannels body: notificationChannels: - - id: webhook - name: Webhook - destination: + - destination: + token: '123' type: WEBHOOK url: https://webhook.site - token: '123' + id: webhook + name: Webhook headers: Accept-Encoding: - br, gzip, deflate @@ -64,10 +64,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -78,7 +79,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -86,16 +90,13 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/workspaces/demo/automations body: - id: automation - state: ACTIVE - title: Automation metadata: key: value notificationChannel: @@ -103,8 +104,10 @@ interactions: type: notificationChannel schedule: cron: 0 0 0 ? * * - timezone: UTC firstRun: '2023-10-05T14:30:00+00:00' + timezone: UTC + state: ACTIVE + title: Automation headers: Accept-Encoding: - br, gzip, deflate @@ -114,10 +117,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/automations response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -128,7 +132,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -136,12 +143,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo/automations body: null headers: Accept: @@ -152,10 +158,24 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/automations response: - status: - code: 200 - message: OK + body: + string: + - evaluationMode: PER_RECIPIENT + id: automation + metadata: + key: value + notificationChannel: + id: webhook + type: notificationChannel + schedule: + cron: 0 0 0 ? * * + firstRun: '2023-10-05T14:30:00Z' + timezone: UTC + state: ACTIVE + title: Automation headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -170,7 +190,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -178,25 +201,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: - - evaluationMode: PER_RECIPIENT - id: automation - metadata: - key: value - notificationChannel: - id: webhook - type: notificationChannel - schedule: - cron: 0 0 0 ? * * - firstRun: '2023-10-05T14:30:00Z' - timezone: UTC - state: ACTIVE - title: Automation + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/workspaces/demo/automations body: [] headers: Accept-Encoding: @@ -207,10 +216,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/automations response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -221,7 +231,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -229,12 +242,11 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/notificationChannels body: notificationChannels: [] headers: @@ -246,10 +258,11 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/notificationChannels response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate @@ -260,7 +273,10 @@ interactions: - no-cache Referrer-Policy: - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers @@ -268,6 +284,8 @@ interactions: - nosniff X-GDC-TRACE-ID: *id001 X-Xss-Protection: - - '0' - body: - string: '' + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_filter_views.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_filter_views.yaml index bf948f6a3..9302e5eea 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_filter_views.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/layout_filter_views.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews body: null headers: Accept: @@ -14,15 +11,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews response: - status: - code: 200 - message: OK + body: + string: [] headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '2' Content-Type: @@ -36,51 +32,51 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: [] + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews body: - - id: filter_view - title: Filter View - analyticalDashboard: + - analyticalDashboard: id: campaign type: analyticalDashboard content: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: demo:campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true selectionMode: multi version: '2' description: Filter View + id: filter_view isDefault: true tags: - tag1 - tag2 + title: Filter View user: id: demo type: user @@ -93,15 +89,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -110,21 +105,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews body: null headers: Accept: @@ -135,37 +130,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '590' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: - analyticalDashboard: @@ -175,19 +142,19 @@ interactions: filters: - dateFilter: from: '0' - to: '0' granularity: GDC.time.month + to: '0' type: relative - attributeFilter: + attributeElements: + uris: [] displayForm: identifier: id: demo:campaign_name type: label - negativeSelection: true - attributeElements: - uris: [] - localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true selectionMode: multi version: '2' description: Filter View @@ -200,9 +167,36 @@ interactions: user: id: demo type: user + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '590' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: PUT - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews body: [] headers: Accept-Encoding: @@ -213,15 +207,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: PUT + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/layout/workspaces/demo/filterViews response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive DATE: *id001 Expires: - '0' @@ -230,15 +223,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml index 04ae3e271..ee44cb7e5 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 body: null headers: Accept: @@ -14,15 +11,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e99369fc5d28312dfad3f17ea09 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -36,34 +37,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 5aab2cfc6796a4f4bc54f30d013c80a7 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings body: data: - type: workspaceSetting - id: test_setting_1 attributes: content: value: fr-FR type: LOCALE + id: test_setting_1 + type: workspaceSetting headers: Accept: - application/json @@ -75,15 +71,27 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings response: - status: - code: 201 - message: Created + body: + string: + data: + attributes: + content: + value: fr-FR + type: LOCALE + id: test_setting_1 + meta: + origin: + originId: demo + originType: NATIVE + type: workspaceSetting + links: + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '320' Content-Type: @@ -96,34 +104,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - data: - attributes: - content: - value: fr-FR - type: LOCALE - id: test_setting_1 - meta: - origin: - originId: demo - originType: NATIVE - type: workspaceSetting - links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 body: null headers: Accept: @@ -134,15 +129,19 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 response: - status: - code: 404 - message: Not Found + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 69ca7e996d04c6210cbf2b5f4c25af02 headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - '172' Content-Type: @@ -155,34 +154,29 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: - detail: The requested endpoint does not exist or you do not have permission - to access it. - status: 404 - title: Not Found - traceId: 60a429950db2919f6fe9e37c15a8e874 + X-Xss-Protection: + - 1; mode=block + status: + code: 404 + message: Not Found - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings body: data: - type: workspaceSetting - id: test_setting_2 attributes: content: value: en-US type: FORMAT_LOCALE + id: test_setting_2 + type: workspaceSetting headers: Accept: - application/json @@ -194,37 +188,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings response: - status: - code: 201 - message: Created - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '327' - Content-Type: - - application/json - DATE: *id001 - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: data: @@ -240,30 +206,11 @@ interactions: type: workspaceSetting links: self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 - - request: - method: GET - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - br, gzip, deflate - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Length: - - '919' + - '327' Content-Type: - application/json DATE: *id001 @@ -274,16 +221,34 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' + X-Xss-Protection: + - 1; mode=block + status: + code: 201 + message: Created + - request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + method: GET + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + response: body: string: data: @@ -312,11 +277,38 @@ interactions: originType: NATIVE type: workspaceSetting links: - self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 next: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 + self: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Length: + - '919' + Content-Type: + - application/json + DATE: *id001 + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 body: null headers: Accept-Encoding: @@ -325,15 +317,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -344,21 +335,21 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content - request: - method: DELETE - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 body: null headers: Accept-Encoding: @@ -367,15 +358,14 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: DELETE + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 response: - status: - code: 204 - message: No Content + body: + string: '' headers: Cache-Control: - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive Content-Type: - application/vnd.gooddata.api+json DATE: *id001 @@ -386,15 +376,18 @@ interactions: Referrer-Policy: - no-referrer Strict-Transport-Security: - - max-age=63072000; includeSubDomains + - max-age=31536000; includeSubDomains; preload Vary: + - Accept-Encoding - Origin - Access-Control-Request-Method - Access-Control-Request-Headers X-Content-Type-Options: - nosniff X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' - body: - string: '' + X-Xss-Protection: + - 1; mode=block + status: + code: 204 + message: No Content +version: 1 diff --git a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/set_metadata_localization.yaml b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/set_metadata_localization.yaml index 9dae87d60..b16566139 100644 --- a/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/set_metadata_localization.yaml +++ b/packages/gooddata-sdk/tests/catalog/fixtures/workspaces/set_metadata_localization.yaml @@ -1,9 +1,6 @@ # (C) 2026 GoodData Corporation -version: 1 interactions: - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve body: locale: fr-FR headers: @@ -17,41 +14,9 @@ interactions: - 'true' X-Requested-With: - XMLHttpRequest + method: POST + uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/retrieve response: - status: - code: 200 - message: OK - headers: - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Encoding: - - br - Content-Type: - - application/xml - DATE: &id001 - - PLACEHOLDER - Expires: - - '0' - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Strict-Transport-Security: - - max-age=63072000; includeSubDomains - Transfer-Encoding: - - chunked - Vary: - - Accept-Encoding - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - '0' body: string: filterContext + headers: + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Encoding: + - br + Content-Type: + - application/xml + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK - request: - method: POST - uri: https://python-sdk-dex.dev-latest.stg11.panther.intgdc.com/api/v1/actions/workspaces/demo/translations/set body: Campaign