From 1c1ae20cea97f28b498ca96fd933cd4772cfd2fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Tollar?= Date: Fri, 11 Sep 2026 14:10:27 +0200 Subject: [PATCH] feat(gooddata-api-client): add the CREATE_METRIC workspace permission F1-2785 added CREATE_METRIC to the backend permission hierarchy and switched POST /entities/workspaces/{id}/metrics over to it, but the specs this client generates from still predate that, so assigning the level through the SDK failed client-side validation. Adds the value to the seven workspace-permission enums in the metadata spec and updates the metrics POST security info, then regenerates. The merged spec was verified to be reproducible from the per-API specs first, so the only delta is this one, rather than the unrelated drift a full staging re-download would pull in. jira: F1-2785 risk: low --- .../model/declarative_single_workspace_permission.py | 1 + .../declarative_workspace_hierarchy_permission.py | 1 + .../model/json_api_workspace_out_meta.py | 1 + ...user_management_workspace_permission_assignment.py | 2 ++ .../model/workspace_permission_assignment.py | 2 ++ schemas/gooddata-api-client.json | 11 +++++++++-- schemas/gooddata-metadata-client.json | 11 +++++++++-- 7 files changed, 25 insertions(+), 4 deletions(-) diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py index eb8a42df5..3760ad2d8 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_single_workspace_permission.py @@ -71,6 +71,7 @@ class DeclarativeSingleWorkspacePermission(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.py b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.py index cecaa382e..12c393fec 100644 --- a/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.py +++ b/gooddata-api-client/gooddata_api_client/model/declarative_workspace_hierarchy_permission.py @@ -71,6 +71,7 @@ class DeclarativeWorkspaceHierarchyPermission(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py index f729ee064..ecadd6177 100644 --- a/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py +++ b/gooddata-api-client/gooddata_api_client/model/json_api_workspace_out_meta.py @@ -75,6 +75,7 @@ class JsonApiWorkspaceOutMeta(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, } diff --git a/gooddata-api-client/gooddata_api_client/model/user_management_workspace_permission_assignment.py b/gooddata-api-client/gooddata_api_client/model/user_management_workspace_permission_assignment.py index 16ce82697..627e9e9b3 100644 --- a/gooddata-api-client/gooddata_api_client/model/user_management_workspace_permission_assignment.py +++ b/gooddata-api-client/gooddata_api_client/model/user_management_workspace_permission_assignment.py @@ -67,6 +67,7 @@ class UserManagementWorkspacePermissionAssignment(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, ('permissions',): { @@ -80,6 +81,7 @@ class UserManagementWorkspacePermissionAssignment(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, ('access_source',): { diff --git a/gooddata-api-client/gooddata_api_client/model/workspace_permission_assignment.py b/gooddata-api-client/gooddata_api_client/model/workspace_permission_assignment.py index e92fb6422..33b53ed8b 100644 --- a/gooddata-api-client/gooddata_api_client/model/workspace_permission_assignment.py +++ b/gooddata-api-client/gooddata_api_client/model/workspace_permission_assignment.py @@ -71,6 +71,7 @@ class WorkspacePermissionAssignment(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, ('permissions',): { @@ -84,6 +85,7 @@ class WorkspacePermissionAssignment(ModelNormal): 'WRITE_KNOWLEDGE_DOCUMENTS': "WRITE_KNOWLEDGE_DOCUMENTS", 'READ_KNOWLEDGE_DOCUMENTS': "READ_KNOWLEDGE_DOCUMENTS", 'CREATE_FILTER_VIEW': "CREATE_FILTER_VIEW", + 'CREATE_METRIC': "CREATE_METRIC", 'VIEW': "VIEW", }, } diff --git a/schemas/gooddata-api-client.json b/schemas/gooddata-api-client.json index 32471be91..14b90ac48 100644 --- a/schemas/gooddata-api-client.json +++ b/schemas/gooddata-api-client.json @@ -8517,6 +8517,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -9432,6 +9433,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -31162,6 +31164,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -38394,6 +38397,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -38420,6 +38424,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -39297,6 +39302,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -39316,6 +39322,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -64744,9 +64751,9 @@ "metric-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to create Metrics", "permissions": [ - "MANAGE" + "CREATE_METRIC" ] } } diff --git a/schemas/gooddata-metadata-client.json b/schemas/gooddata-metadata-client.json index b02ec2d80..6a5880a44 100644 --- a/schemas/gooddata-metadata-client.json +++ b/schemas/gooddata-metadata-client.json @@ -5990,6 +5990,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -6889,6 +6890,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -26792,6 +26794,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -30832,6 +30835,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -30858,6 +30862,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -31201,6 +31206,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -31220,6 +31226,7 @@ "WRITE_KNOWLEDGE_DOCUMENTS", "READ_KNOWLEDGE_DOCUMENTS", "CREATE_FILTER_VIEW", + "CREATE_METRIC", "VIEW" ], "type": "string" @@ -50948,9 +50955,9 @@ "metric-controller" ], "x-gdc-security-info": { - "description": "Contains minimal permission level required to manage this object type.", + "description": "Contains minimal permission level required to create Metrics", "permissions": [ - "MANAGE" + "CREATE_METRIC" ] } }