Alson Yap
03/06/2025, 12:47 AMManage
access on a data source. He then attempted to upload additional data, but faced with this error. If it helps, his user is Nick Paul and he's been added to the ts-internal-se-group
, and he's working on the ts-sd1-csv-ds
data source as seen in screenshot.
Pls kindly assist, thank you!Joseph Heun
03/06/2025, 12:58 AMAlson Yap
03/06/2025, 1:05 AMnickpaul
he has no issues accessing the workspace. He is attempting to upload additional filesAlson Yap
03/06/2025, 1:15 AMAlson Yap
03/06/2025, 9:49 AMJoseph Heun
03/06/2025, 11:11 PMAlson Yap
03/06/2025, 11:42 PMAlson Yap
03/07/2025, 2:19 AMMichael Ullock
03/07/2025, 2:49 PMAlson Yap
03/07/2025, 3:50 PMJoseph Heun
03/07/2025, 5:22 PMAlson Yap
03/07/2025, 11:41 PMJoseph Heun
03/10/2025, 8:28 AMAlson Yap
03/10/2025, 8:32 AMts-internal-se-group
has Manage
access to the data source (that Nick is in)Joseph Heun
03/10/2025, 8:34 AMAlson Yap
03/10/2025, 8:36 AMAlson Yap
03/10/2025, 8:37 AMJoseph Heun
03/10/2025, 8:38 AMAlson Yap
03/10/2025, 8:39 AMPermissions
tab now. and am seeing theseAlson Yap
03/10/2025, 8:40 AMAlson Yap
03/10/2025, 8:40 AMAlson Yap
03/10/2025, 8:49 AMJoseph Heun
03/10/2025, 8:57 AMJoseph Heun
03/10/2025, 8:57 AMJoseph Heun
03/10/2025, 9:52 AMAlson Yap
03/10/2025, 10:11 AMdef create_user(user, headers):
"""Create a user in the GoodData system."""
create_user_endpoint = settings.GOODDATA_ENDPOINTS["CREATE_USER"]
try:
payload = create_user_endpoint.payload.format( # type: ignore
user_id=user.id,
first_name=user.first_name,
last_name=user.last_name,
email=user.email,
authentication_id=user.user_id,
group_id=settings.TS_MT_DEV_GROUP_ID,
)
response = requests.request(
method=create_user_endpoint.method,
url=create_user_endpoint.url,
headers=headers,
data=payload,
)
response.raise_for_status()
logger.success(f"Successfully created user: {user.id}")
return response.json()
except requests.exceptions.RequestException as e:
logger.error(f"Error creating user {user.id}: {e}")
except Exception as e:
logger.error(f"Unexpected error while creating user {user.id}: {e}")
And if you're wondering about what that CREATE_USER
key-value pair is:
GOODDATA_ENDPOINTS: Dict[str, GoodDataAPIEndpoint] = {
"GET_USERS": GoodDataAPIEndpoint(
method="GET",
url=f"{GOODDATA_HOST_URL}/api/v1/layout/usersAndUserGroups",
),
"CREATE_USER": GoodDataAPIEndpoint(
method="POST",
url=f"{GOODDATA_HOST_URL}/api/v1/entities/users",
payload="""
{{
"data": {{
"id": "{user_id}",
"type": "user",
"authenticationId": "{authentication_id}",
"attributes": {{
"firstname": "{first_name}",
"lastname": "{last_name}",
"email": "{email}",
"authenticationId": "{authentication_id}"
}},
"relationships": {{
"userGroups": {{
"data": [
{{
"id": "{group_id}",
"type": "userGroup"
}}
]
}}
}}
}}
}}
""",
),
Once the user is created via code, then I will go into the GD UI and assign the user into the groupAlson Yap
03/10/2025, 10:12 AMJoseph Heun
03/10/2025, 12:50 PMAlson Yap
03/10/2025, 12:53 PM<mailto:xx@terrascope.com|xx@terrascope.com>
email domain to log in. I could create a user without any SSO authentication, and generate an API token for you though. Not sure which do you think is better.
Alternatively, would you require Nick to provide you with trace ID instead?Joseph Heun
03/10/2025, 12:53 PMAlson Yap
03/10/2025, 12:55 PMJoseph Heun
03/10/2025, 1:13 PMAlson Yap
03/10/2025, 1:15 PMts-mtdev-csv-ds
, he should be able to Manage
it, as that group has such an access right?Alson Yap
03/10/2025, 1:15 PMJoseph Heun
03/10/2025, 1:19 PMJoseph Heun
03/10/2025, 1:32 PMJoseph Heun
03/10/2025, 1:33 PMAlson Yap
03/10/2025, 1:39 PMts-mtdev-csv-ds
.
Nick is in SE group, to access ts-sd1-csv-ds
Joseph Heun
03/10/2025, 1:51 PMAlson Yap
03/10/2025, 2:07 PMZhi Yi Yeo
03/11/2025, 12:35 AMAlson Yap
03/11/2025, 1:55 AMAlson Yap
03/11/2025, 1:56 AMManage
access to a data source. Yet user is seeing the error aboveNick Paul
03/11/2025, 3:45 AMAlson Yap
03/11/2025, 3:52 AMJoseph Heun
03/11/2025, 9:01 AMAlson Yap
03/11/2025, 12:19 PMFrancisco Antunes
03/11/2025, 12:25 PMMANAGE
permissions to a CSV Data Source via userGroups or even directly assigned to a User is not sufficient to allow users to modify the data source (in this case: add or update the CSV files).
I will continue to investigate this in more detail, but for now I would recommend adding your users to the adminGroup as a workaround, if they need to make changes to Data Sources. From my tests, I haven’t been able to grant the correct permissions any other way.Alson Yap
03/11/2025, 1:17 PMFrancisco Antunes
03/11/2025, 3:23 PMFrancisco Antunes
03/13/2025, 1:30 PMAlson Yap
03/13/2025, 2:28 PMFrancisco Antunes
03/13/2025, 2:39 PMorg.MANAGE
rights (that is, domain admins).
The change will allow users with MANAGE
permissions on the CSV data source to access that endpoint, too, fixing the problem. We do not expect an impact on any other features.Francisco Antunes
03/14/2025, 9:38 AMNick Paul
03/14/2025, 6:47 PMAlson Yap
03/17/2025, 1:54 AMZhi Yi Yeo
03/17/2025, 5:48 AM