Toby
02/07/2025, 1:45 PMJulius Kos
02/07/2025, 4:35 PM[
{
"assigneeIdentifier": {
"id": "example.namesdfsifsdfjsodf",
"type": "user"
},
"permissions": ["SHARE"]
}
]
(for specific user or userGroup)
Or this:
[
{
"assigneeRule": {
"type": "allWorkspaceUsers"
},
"permissions": ["EDIT"]
}
]
(for all workspace users)
I’m raising this issue internally and we will fix the documentation as soon as possible.
3.) Cloning Workspaces
I can confirm that the procedure for cloning a workspace is either usage of declarative APIs:
https://www.gooddata.com/docs/cloud/create-workspaces/declarative-interface/#WorkspaceDeclarativeAPIInterface-CloneaWorkspace
Or alternatively, the workspace can be also represented and managed using declarative YAMLs, should this interest you. https://www.gooddata.com/docs/cloud/api-and-sdk/vs-code-extension/
4.) Deploying Dashboards to Another Workspace via UI
Unfortunately there is no built-in UI way how to deploy Dashboards to Another Workspace. You would need to use API for that (except for simply using workspace hierarchy where dashboard created in a parent workspace is automatically inherited by its child workspace).
5.) Updating Workspaces Without Disrupting Customers’ Dashboards
Could you please elaborate a bit more on this question? What updates are we exactly talking about in this case?
6.) Permissions on Metrics and Visualizations:
No, Metrics and Visualizations don’t contain permission setting as Dashboard or Workspace. The available user roles can only distinguishe whether a user can create or manage a metric. More information below:
https://help.gooddata.com/doc/growth/en/workspace-and-user-administration/managing-users-in-workspaces/user-roles/user-roles-permissions/
7.) Circular References in Metrics
GoodData does not allow circular references in metrics. The MAQL engine automatically detects circular dependencies and prevents them from being created. But it’s still good practice to manually check for logical loops. While GoodData enforces restrictions at the metric level, unintended circular logic could still arise if you structure dependencies in a way that creates conflicting calculations.Michal Hauzírek
02/07/2025, 8:41 PMHayley
02/13/2025, 9:27 AMHayley
02/13/2025, 9:30 AMMichal Hauzírek
02/13/2025, 7:19 PMgd clone
and gd deploy
and others without the need to use the VS Code itself. However one of its main goals is to translate the API responses from GoodData APIs into the structures used by VS Code plugin.
Just note that the CLI and VSCode are currently meant for managing a single workspace only, not the whole hierarchy. As far as I know it does not perform diff merge, but full replace. gd clone
downloads full current definition of a single workspace and gd deploy
completely replaces contents of that workspace.
It could still be used i.e. to manage the parent workspace, but please note that both the VS Code and this CLI are still marked as BETA and not recommended for production deployment.
If you want to automate your production deployments, I would recommend to use the Python SDK that can handle full spectrum of workspace hierarchies etc. (An example of deployment management is described here). It also allows you to get and set declarative configuration of workspace, its part or the whole solution.
I would say the best practice would be to use Python SDK to define a declarative setup of a workspace (i.e. from a development workspace/environment where you develop the changes), store it to git/other versioning tool where you can perform diff/merge/approve and then use Python SDK to deploy the changes to production.
Performance of APIs
The APIs that handle the workspace structure - data model, metrics, dashboards - does not directly work with or contain the data on which the reporting is happening.
As far as I know GoodData has many customers with hundreds or even thousands of tenants and the API works fine. Especially when working with the hierarchy, each workspace would only contain objects specific to that workspace, not whole copy of the parent workspace.
For performance of the queries (how long it takes to calculate the report) - this would depend on the underlying data source and how the database is structured and optimized - GoodData is generating the SQL queries and executing it directly against that database, plus there is a caching layer that can store results of previous queries.
Metrics
All metrics and other objects in GoodData Cloud reference each other by identifiers. Cloning should not break any metric relationship. If any change (i.e. removing part of logical model) affects some objects in child workspace, the affected metrics would get hidden. There is a special http header on the APIs “X-GDC-VALIDATE-RELATIONS” that should allow you to check if any objects are broken.
Custom attributes
By custom attributes against workspace - do you mean by that that apart from the core shared data model inherited from the parent, you would like to extend the data model of a particular workspace with some additional attributes?
This is possible by modifying the data model of the child workspace and adding additional dataset there, which is connected (by a M:N edge) to the core dataset’s key. If you would be interested in this particular case, we can share more info.
I hope I answered all your questions. Please feel free to ask here in community if you would like to know more.