Using API key to only allow access for a specific dataset within the project
Hi, I'm trying to give access outside of DSS, but for a specific dataset only. API keys documentation made it seem like an easy option.
What I did:
1) In a project with multiple datasets, I've created a new API key as follows:
Project-wide:
[ { "datasets": [ "A_SPECIFIC_DATASET" ], "privileges": [ "READ_DATA", "READ_METADATA", "READ_SCHEMA" ] } ]
Datasets privileges:
Exception: Unable to fetch schema for PK.A_SPECIFIC_DATASET: b"You don't have permission to access dataset PK.A_SPECIFIC_DATASET (context-less)"
And the issue I have is that when I have project-wide readProjectContent set to True, I can get dataframe out of any dataset within that project, even those that are shared from other projects into that one.
And if I set it to False, then I can't access any datasets, even that one that I specifically mentioned in datasets privileges section:
{ "admin": false, "readProjectContent": true, "writeProjectContent": false, "exportDatasetsData": false, "readDashboards": false, "writeDashboards": false, "moderateDashboards": false, "shareToWorkspaces": false, "runScenarios": false, "manageDashboardAuthorizations": false, "manageExposedElements": false, "manageAdditionalDashboardUsers": false, "executeApp": false }
So my question is this: how can I create an API key that will allow me to give access to only specific datasets within a project?
Operating system used: CentOs 7
Operating system used: CentOs 7
Answers
-
Alexandru Dataiker, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 1,226 Dataiker
Hi @zloe
,
I was not able to reproduce the behavior described. Please share the exact permissions used and the code you are using outside of DSS to access the dataset in a support ticket so we can investigate further.Thanks,