From 05513486a74f473de878b7ea25d42b2b314e49a6 Mon Sep 17 00:00:00 2001 From: hkad98 Date: Mon, 23 Oct 2023 14:05:20 -0700 Subject: [PATCH] Fix workspace setting --- gooddata-sdk/gooddata_sdk/catalog/setting.py | 3 +- .../content_objects/workspace_setting.py | 28 +- .../gooddata_sdk/catalog/workspace/service.py | 5 +- .../workspaces/create_workspace_setting.yaml | 407 +++++++++++ .../workspaces/delete_workspace_setting.yaml | 551 ++++++++++++++ .../workspaces/demo_translate_workspace.yaml | 277 +++---- .../workspaces/list_workspace_settings.yaml | 662 +++++++++++++++++ .../workspaces/update_workspace_setting.yaml | 674 ++++++++++++++++++ .../tests/catalog/test_catalog_workspace.py | 87 +++ 9 files changed, 2546 insertions(+), 148 deletions(-) create mode 100644 gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml create mode 100644 gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml create mode 100644 gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml create mode 100644 gooddata-sdk/tests/catalog/fixtures/workspaces/update_workspace_setting.yaml diff --git a/gooddata-sdk/gooddata_sdk/catalog/setting.py b/gooddata-sdk/gooddata_sdk/catalog/setting.py index 2263b165a..bfcc16aa1 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/setting.py +++ b/gooddata-sdk/gooddata_sdk/catalog/setting.py @@ -7,12 +7,13 @@ from gooddata_api_client.model.declarative_custom_application_setting import DeclarativeCustomApplicationSetting from gooddata_api_client.model.declarative_setting import DeclarativeSetting -from gooddata_sdk.catalog.base import Base +from gooddata_sdk.catalog.base import Base, value_in_allowed @attr.s(auto_attribs=True, kw_only=True) class CatalogDeclarativeSetting(Base): id: str + type: str = attr.field(validator=value_in_allowed) content: Optional[Dict[str, Any]] = None @staticmethod diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py index aece6c17c..c20b22a7d 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py +++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py @@ -1,7 +1,8 @@ # (C) 2023 GoodData Corporation from __future__ import annotations -from typing import Type, Union +import functools +from typing import Any, Dict, Type, Union import attr @@ -13,26 +14,29 @@ from gooddata_api_client.model.json_api_workspace_setting_post_optional_id_document import ( JsonApiWorkspaceSettingPostOptionalIdDocument, ) -from gooddata_sdk.catalog.entity import AttrCatalogEntity +from gooddata_sdk.catalog.base import Base, value_in_allowed from gooddata_sdk.utils import safeget @attr.s(auto_attribs=True, kw_only=True) -class CatalogWorkspaceSetting(AttrCatalogEntity): +class CatalogWorkspaceSetting(Base): id: str = attr.field(default=None) - - @staticmethod - def client_class() -> Type[JsonApiWorkspaceSettingOut]: - return JsonApiWorkspaceSettingOut - + setting_type: str = attr.field( + validator=functools.partial(value_in_allowed, client_class=JsonApiOrganizationSettingInAttributes) + ) content: dict = attr.field( repr=False, default=attr.Factory(lambda self: safeget(self.json_api_entity.attributes, ["content"]), takes_self=True), ) + @staticmethod + def client_class() -> Type[JsonApiWorkspaceSettingOut]: + return JsonApiWorkspaceSettingOut + def _attributes(self) -> JsonApiOrganizationSettingInAttributes: return JsonApiOrganizationSettingInAttributes( content=self.content, + type=self.setting_type, ) def to_api( @@ -50,3 +54,11 @@ def to_api( return JsonApiWorkspaceSettingInDocument( data=JsonApiWorkspaceSettingIn(id=self.id, attributes=self._attributes()) ) + + @classmethod + def from_api(cls, entity: Dict[str, Any]) -> CatalogWorkspaceSetting: + return cls( + id=entity["id"], + setting_type=entity["attributes"]["type"], + content=entity["attributes"]["content"], + ) diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py index 201490e2a..582d0b922 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py +++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/service.py @@ -595,10 +595,11 @@ def provision_workspace_with_locales( self.delete_workspace_setting(new_workspace.id, "formatLocale") # Create/update locale settings to target language self.create_or_update_workspace_setting( - new_workspace.id, CatalogWorkspaceSetting(id="locale", content={"value": to_locale}) + new_workspace.id, CatalogWorkspaceSetting(id="locale", content={"value": to_locale}, setting_type="LOCALE") ) self.create_or_update_workspace_setting( - new_workspace.id, CatalogWorkspaceSetting(id="formatLocale", content={"value": to_locale}) + new_workspace.id, + CatalogWorkspaceSetting(id="formatLocale", content={"value": to_locale}, setting_type="FORMAT_LOCALE"), ) def translate_if_requested( diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml new file mode 100644 index 000000000..c9201dc6b --- /dev/null +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/create_workspace_setting.yaml @@ -0,0 +1,407 @@ +# (C) 2023 GoodData Corporation +version: 1 +interactions: + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/problem+json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 4ef7c2cd2bc30c03 + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings + body: + data: + type: workspaceSetting + id: test_setting + attributes: + content: + value: fr-FR + type: LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '215' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: [] + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml new file mode 100644 index 000000000..92a5c4784 --- /dev/null +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/delete_workspace_setting.yaml @@ -0,0 +1,551 @@ +# (C) 2023 GoodData Corporation +version: 1 +interactions: + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/problem+json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 383256b3b387afeb + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings + body: + data: + type: workspaceSetting + id: test_setting + attributes: + content: + value: fr-FR + type: LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '215' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: [] + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '215' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: [] + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml index 7b70dd988..215a15c27 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_translate_workspace.yaml @@ -207,7 +207,7 @@ interactions: drills: [] properties: {} version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -246,7 +246,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -396,7 +396,7 @@ interactions: drills: [] properties: {} version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -407,7 +407,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -417,7 +417,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -466,7 +466,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -475,7 +475,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -485,7 +485,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -495,7 +495,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -505,7 +505,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -514,7 +514,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -523,7 +523,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -533,7 +533,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -543,7 +543,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -553,7 +553,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -563,7 +563,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -573,7 +573,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -583,7 +583,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -593,7 +593,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -604,7 +604,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -614,7 +614,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -624,7 +624,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -634,7 +634,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -643,7 +643,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -652,7 +652,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -661,7 +661,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -670,7 +670,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -679,7 +679,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -688,7 +688,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -753,7 +753,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -829,7 +829,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -908,7 +908,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -967,7 +967,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1024,7 +1024,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1077,7 +1077,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1152,7 +1152,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1209,7 +1209,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1308,7 +1308,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1364,7 +1364,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1403,7 +1403,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1459,7 +1459,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1527,7 +1527,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1584,7 +1584,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -1641,7 +1641,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2066,7 +2066,7 @@ interactions: Connection: - keep-alive Content-Length: - - '255' + - '275' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com @@ -2118,7 +2118,8 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: f0ec3cf7-fc0f-4915-837b-e77af36ece4a + allowedOrigins: [] + oauthClientId: 7b57451a-4c98-473b-8135-9e86cdb05b18 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -2326,7 +2327,7 @@ interactions: drills: [] properties: {} version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2365,7 +2366,7 @@ interactions: type: dashboardPlugin version: '2' version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2515,7 +2516,7 @@ interactions: drills: [] properties: {} version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2526,7 +2527,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2536,7 +2537,7 @@ interactions: - content: url: https://www.example.com version: '2' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2585,7 +2586,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2594,7 +2595,7 @@ interactions: - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2604,7 +2605,7 @@ interactions: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2614,7 +2615,7 @@ interactions: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2624,7 +2625,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2633,7 +2634,7 @@ interactions: - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2642,7 +2643,7 @@ interactions: - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2652,7 +2653,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2662,7 +2663,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2672,7 +2673,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2682,7 +2683,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: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2692,7 +2693,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2702,7 +2703,7 @@ interactions: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2712,7 +2713,7 @@ interactions: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2723,7 +2724,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2733,7 +2734,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2743,7 +2744,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2753,7 +2754,7 @@ interactions: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2762,7 +2763,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2771,7 +2772,7 @@ interactions: - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2780,7 +2781,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2789,7 +2790,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2798,7 +2799,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2807,7 +2808,7 @@ interactions: - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2872,7 +2873,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -2948,7 +2949,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3027,7 +3028,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3086,7 +3087,7 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3143,7 +3144,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3196,7 +3197,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3271,7 +3272,7 @@ interactions: visible: false version: '2' visualizationUrl: local:column - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3328,7 +3329,7 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3427,7 +3428,7 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3483,7 +3484,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3522,7 +3523,7 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3578,7 +3579,7 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3646,7 +3647,7 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3703,7 +3704,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -3760,7 +3761,7 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -4166,7 +4167,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: cb8513c5e157c9f3 + traceId: 9dd2581e7f549022 - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -4842,7 +4843,7 @@ interactions: id: campaign title: Campaign description: '' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -4880,7 +4881,7 @@ interactions: version: '2' id: dashboard_plugin title: Dashboard plugin - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5031,7 +5032,7 @@ interactions: id: product_and_category title: Product & Category description: '' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5043,7 +5044,7 @@ interactions: id: dashboard_plugin_1 title: dashboard_plugin_1 description: Testing record dashboard_plugin_1 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5053,7 +5054,7 @@ interactions: id: dashboard_plugin_2 title: dashboard_plugin_2 description: Testing record dashboard_plugin_2 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5101,7 +5102,7 @@ interactions: maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) id: amount_of_active_customers title: '# of Active Customers' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5110,7 +5111,7 @@ interactions: maql: SELECT COUNT({attribute/order_id}) id: amount_of_orders title: '# of Orders' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5120,7 +5121,7 @@ interactions: BY {attribute/customer_id}) > 10000 ' id: amount_of_top_customers title: '# of Top Customers' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5131,7 +5132,7 @@ interactions: id: amount_of_valid_orders title: '# of Valid Orders' description: '' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5140,7 +5141,7 @@ interactions: maql: SELECT SUM({fact/spend}) id: campaign_spend title: Campaign Spend - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5149,7 +5150,7 @@ interactions: maql: SELECT SUM({fact/price}*{fact/quantity}) id: order_amount title: Order Amount - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5158,7 +5159,7 @@ interactions: maql: SELECT {metric/revenue} / {metric/total_revenue} id: percent_revenue title: '% Revenue' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5168,7 +5169,7 @@ interactions: \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" id: percent_revenue_from_top_10_customers title: '% Revenue from Top 10 Customers' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5178,7 +5179,7 @@ interactions: \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" id: percent_revenue_from_top_10_percent_customers title: '% Revenue from Top 10% Customers' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5188,7 +5189,7 @@ interactions: \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" id: percent_revenue_from_top_10_percent_products title: '% Revenue from Top 10% Products' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5198,7 +5199,7 @@ interactions: \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" id: percent_revenue_from_top_10_products title: '% Revenue from Top 10 Products' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5208,7 +5209,7 @@ interactions: ALL OTHER) id: percent_revenue_in_category title: '% Revenue in Category' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5217,7 +5218,7 @@ interactions: maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) id: percent_revenue_per_product title: '% Revenue per Product' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5228,7 +5229,7 @@ interactions: id: revenue title: Revenue description: '' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5237,7 +5238,7 @@ interactions: maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") id: revenue-clothing title: Revenue (Clothing) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5247,7 +5248,7 @@ interactions: "Electronics") id: revenue-electronic title: Revenue (Electronic) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5256,7 +5257,7 @@ interactions: maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") id: revenue-home title: Revenue (Home) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5265,7 +5266,7 @@ interactions: maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") id: revenue-outdoor title: Revenue (Outdoor) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5274,7 +5275,7 @@ interactions: maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) id: revenue_per_customer title: Revenue per Customer - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5283,7 +5284,7 @@ interactions: maql: SELECT {metric/revenue} / {metric/campaign_spend} id: revenue_per_dollar_spent title: Revenue per Dollar Spent - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5292,7 +5293,7 @@ interactions: maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) id: revenue_top_10 title: Revenue / Top 10 - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5301,7 +5302,7 @@ interactions: maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) id: revenue_top_10_percent title: Revenue / Top 10% - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5310,7 +5311,7 @@ interactions: maql: SELECT {metric/revenue} BY ALL OTHER id: total_revenue title: Total Revenue - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5319,7 +5320,7 @@ interactions: maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER id: total_revenue-no_filters title: Total Revenue (No Filters) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5384,7 +5385,7 @@ interactions: visualizationUrl: local:treemap id: campaign_spend title: Campaign Spend - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5460,7 +5461,7 @@ interactions: visualizationUrl: local:combo2 id: customers_trend title: Customers Trend - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5539,7 +5540,7 @@ interactions: visualizationUrl: local:table id: percent_revenue_per_product_by_customer_and_category title: '% Revenue per Product by Customer and Category' - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5598,7 +5599,7 @@ interactions: visualizationUrl: local:area id: percentage_of_customers_by_region title: Percentage of Customers by Region - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5655,7 +5656,7 @@ interactions: visualizationUrl: local:treemap id: product_breakdown title: Product Breakdown - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5708,7 +5709,7 @@ interactions: visualizationUrl: local:donut id: product_categories_pie_chart title: Product Categories Pie Chart - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5783,7 +5784,7 @@ interactions: visualizationUrl: local:column id: product_revenue_comparison-over_previous_period title: Product Revenue Comparison (over previous period) - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5840,7 +5841,7 @@ interactions: visualizationUrl: local:scatter id: product_saleability title: Product Saleability - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5939,7 +5940,7 @@ interactions: visualizationUrl: local:table id: revenue_and_quantity_by_product_and_category title: Revenue and Quantity by Product and Category - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -5995,7 +5996,7 @@ interactions: visualizationUrl: local:line id: revenue_by_category_trend title: Revenue by Category Trend - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6034,7 +6035,7 @@ interactions: visualizationUrl: local:bar id: revenue_by_product title: Revenue by Product - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6090,7 +6091,7 @@ interactions: visualizationUrl: local:scatter id: revenue_per_usd_vs_spend_by_campaign title: Revenue per $ vs Spend by Campaign - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6158,7 +6159,7 @@ interactions: visualizationUrl: local:combo2 id: revenue_trend title: Revenue Trend - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6215,7 +6216,7 @@ interactions: visualizationUrl: local:bar id: top_10_customers title: Top 10 Customers - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6272,7 +6273,7 @@ interactions: visualizationUrl: local:bar id: top_10_products title: Top 10 Products - createdAt: 2023-10-01 19:56 + createdAt: 2023-10-23 18:45 createdBy: id: admin type: user @@ -6552,7 +6553,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 46bc58deb32415f9 + traceId: 72a9a05777dc49fe - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces/demo_cs/workspaceSettings @@ -6563,6 +6564,7 @@ interactions: attributes: content: value: cs-CZ + type: LOCALE headers: Accept: - application/vnd.gooddata.api+json @@ -6724,7 +6726,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 05b8a63855cd94e3 + traceId: 45efaa6be6d02b9e - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces/demo_cs/workspaceSettings @@ -6735,6 +6737,7 @@ interactions: attributes: content: value: cs-CZ + type: FORMAT_LOCALE headers: Accept: - application/vnd.gooddata.api+json diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml new file mode 100644 index 000000000..10645eaf3 --- /dev/null +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/list_workspace_settings.yaml @@ -0,0 +1,662 @@ +# (C) 2023 GoodData Corporation +version: 1 +interactions: + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/problem+json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 1028fad5514b391c + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings + body: + data: + type: workspaceSetting + id: test_setting_1 + attributes: + content: + value: fr-FR + type: LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '283' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting_1 + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/problem+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 3f07b9b89b296ea7 + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings + body: + data: + type: workspaceSetting + id: test_setting_2 + attributes: + content: + value: en-US + type: FORMAT_LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '290' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting_2 + type: workspaceSetting + attributes: + content: + value: en-US + type: FORMAT_LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '771' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + - id: test_setting_1 + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 + meta: + origin: + originType: NATIVE + originId: demo + - id: test_setting_2 + type: workspaceSetting + attributes: + content: + value: en-US + type: FORMAT_LOCALE + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_1 + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting_2 + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '215' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: [] + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/update_workspace_setting.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/update_workspace_setting.yaml new file mode 100644 index 000000000..458c618c0 --- /dev/null +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/update_workspace_setting.yaml @@ -0,0 +1,674 @@ +# (C) 2023 GoodData Corporation +version: 1 +interactions: + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 404 + message: Not Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/problem+json + DATE: &id001 + - PLACEHOLDER + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + detail: The requested endpoint does not exist or you do not have permission + to access it. + status: 404 + title: Not Found + traceId: 99e79618e063ec1f + - request: + method: POST + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings + body: + data: + type: workspaceSetting + id: test_setting + attributes: + content: + value: fr-FR + type: LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 201 + message: Created + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: fr-FR + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: PUT + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: en-US + type: LOCALE + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + Content-Type: + - application/vnd.gooddata.api+json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: en-US + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '279' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: test_setting + type: workspaceSetting + attributes: + content: + value: en-US + type: LOCALE + meta: + origin: + originType: NATIVE + originId: demo + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + - request: + method: DELETE + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings/test_setting + body: null + headers: + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + body: null + headers: + Accept: + - application/vnd.gooddata.api+json + Accept-Encoding: + - br, gzip, deflate + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '215' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net *.hsforms.net *.hsforms.com + src.litix.io matomo.anywhere.gooddata.com *.jquery.com unpkg.com cdn.jsdelivr.net + cdnjs.cloudflare.com; img-src ''self'' data: blob: *.wistia.com *.wistia.net + *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net privacy-policy.truste.com + www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com + cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com + *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; frame-src + ''self'' *.hsforms.net *.hsforms.com; object-src ''none''; worker-src + ''self'' blob:; child-src blob:; connect-src ''self'' *.tiles.mapbox.com + *.mapbox.com *.litix.io *.wistia.com *.hsforms.net *.hsforms.com embedwistia-a.akamaihd.net + matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com + *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + DATE: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: [] + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=0&size=500 + next: http://localhost:3000/api/v1/entities/workspaces/demo/workspaceSettings?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/test_catalog_workspace.py b/gooddata-sdk/tests/catalog/test_catalog_workspace.py index 39016c68f..ecb3e6708 100644 --- a/gooddata-sdk/tests/catalog/test_catalog_workspace.py +++ b/gooddata-sdk/tests/catalog/test_catalog_workspace.py @@ -18,6 +18,7 @@ CatalogDeclarativeWorkspaces, CatalogUserDataFilter, CatalogWorkspace, + CatalogWorkspaceSetting, GoodDataApiClient, GoodDataSdk, PostgresAttributes, @@ -712,3 +713,89 @@ def test_translate_workspace(test_config): ) finally: _refresh_workspaces(sdk) + + +@gd_vcr.use_cassette(str(_fixtures_dir / "create_workspace_setting.yaml")) +def test_create_workspace_setting(test_config): + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + setting_id = "test_setting" + setting_type = "LOCALE" + content = {"value": "fr-FR"} + setting = CatalogWorkspaceSetting(id=setting_id, setting_type=setting_type, content=content) + + try: + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], setting) + setting_o = sdk.catalog_workspace.get_workspace_setting(test_config["workspace"], setting_id) + assert setting_o == setting + finally: + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id) + assert len(sdk.catalog_workspace.list_workspace_settings(test_config["workspace"])) == 0 + + +@gd_vcr.use_cassette(str(_fixtures_dir / "list_workspace_settings.yaml")) +def test_list_workspace_settings(test_config): + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + + setting_id_1 = "test_setting_1" + setting_type_1 = "LOCALE" + content_1 = {"value": "fr-FR"} + new_setting_1 = CatalogWorkspaceSetting(id=setting_id_1, setting_type=setting_type_1, content=content_1) + + setting_id_2 = "test_setting_2" + setting_type_2 = "FORMAT_LOCALE" + content_2 = {"value": "en-US"} + new_setting_2 = CatalogWorkspaceSetting(id=setting_id_2, setting_type=setting_type_2, content=content_2) + + try: + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], new_setting_1) + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], new_setting_2) + workspace_settings = sdk.catalog_workspace.list_workspace_settings(test_config["workspace"]) + assert len(workspace_settings) == 2 + assert new_setting_1 in workspace_settings + assert new_setting_2 in workspace_settings + finally: + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id_1) + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id_2) + assert len(sdk.catalog_workspace.list_workspace_settings(test_config["workspace"])) == 0 + + +@gd_vcr.use_cassette(str(_fixtures_dir / "delete_workspace_setting.yaml")) +def test_delete_workspace_setting(test_config): + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + setting_id = "test_setting" + setting_type = "LOCALE" + content = {"value": "fr-FR"} + setting = CatalogWorkspaceSetting(id=setting_id, setting_type=setting_type, content=content) + + try: + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], setting) + setting_o = sdk.catalog_workspace.get_workspace_setting(test_config["workspace"], setting_id) + assert setting_o == setting + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id) + settings = sdk.catalog_workspace.list_workspace_settings(test_config["workspace"]) + assert len(settings) == 0 + finally: + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id) + assert len(sdk.catalog_workspace.list_workspace_settings(test_config["workspace"])) == 0 + + +@gd_vcr.use_cassette(str(_fixtures_dir / "update_workspace_setting.yaml")) +def test_update_workspace_setting(test_config): + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) + setting_id = "test_setting" + setting_type = "LOCALE" + content = {"value": "fr-FR"} + setting = CatalogWorkspaceSetting(id=setting_id, setting_type=setting_type, content=content) + + try: + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], setting) + setting_o = sdk.catalog_workspace.get_workspace_setting(test_config["workspace"], setting_id) + assert setting_o == setting + content = {"value": "en-US"} + setting = CatalogWorkspaceSetting(id=setting_id, setting_type=setting_type, content=content) + sdk.catalog_workspace.create_or_update_workspace_setting(test_config["workspace"], setting) + setting_o = sdk.catalog_workspace.get_workspace_setting(test_config["workspace"], setting_id) + assert setting_o == setting + finally: + sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id) + assert len(sdk.catalog_workspace.list_workspace_settings(test_config["workspace"])) == 0