Meet DSS user Ben Powis, Data Science Manager at UK retail company MandM Direct Read More

Access Project Variable from a different project

Level 1
Access Project Variable from a different project
Is it possible to access a project variable from a different project?

As an example I have a project A, that creates a project variable A.CURRENT_PERIOD , ideally I would like to access this variable from different projects.

I tried to use global variables but when I'm trying to update them I'm getting the following error

"You may not update global variables"

Thanks
0 Kudos
3 Replies
Dataiker
Dataiker

Hi,



For updating global variables, you need to use Dataiku Public API. See example below:




import dataiku
client = dataiku.api_client()

global_variables = client.get_variables()
print(global_variables)

global_variables["foo"] = "bar"
client.set_variables(global_variables)
print(global_variables)


The full documentation is located here for your reference: https://doc.dataiku.com/dss/latest/python-api/rest-api-client/client.html#dataikuapi.dssclient.DSSClient.get_variables



[EDIT] The answer above only works if your user has an ADMIN role on Dataiku. Otherwise, you can use the following code to edit the variable of one project from another:




import dataiku
client = dataiku.api_client()

project = client.get_project("TSFORECAST")
my_other_project_variables = project.get_variables()
print(my_other_project_variables)

my_other_project_variables["standard"]["foo"] = "bar"
project.set_variables(my_other_project_variables)
print(my_other_project_variables)


Hope it helps,



Alex

0 Kudos
Level 1
Author
Hi Alex,

Thanks a lot for your help and your quick reply 🙂
I tried to run this code but unfortunately I'm getting an error that only Admins are allowed to update global variables. Getting admin access it's most likely out of question since I'm a user in a multi-tenant environment.

Is there any other workaround ?
0 Kudos
Dataiker
Dataiker
Hi,
Indeed editing global variables are an admin-only feature, since they are shared by all projects. In a multi-tenant environment, this must be managed by admins to ensure one user would not accidentally cause another user code to stop running.
The workaround would be to use the Dataiku public API to access the variables of the other project. I will add another code snippet for this.
0 Kudos
Labels (1)