Is it possible to switch the context "R" and "Datashield"

Hi all

One of my developed function worked for opal 2.16 but failed for opal 3.0.5. The error message is

> opal.execute(opal=datasources[[3]]@opal, "Xs")
> Error: Client error: (400) Bad Request; IllegalArgument: Not a valid execution context 'DataSHIELD', expecting 'R'

I noticed that in the new opal, the the connection once associated with the context of “Datashield” can not perform any R command even it is the administrator account.

I need the feature that the user which has the “permission of R” can retrieve any matrix from his/her R session. Anyone know how to implement it in the new opal?




This follows a security fix, because when a table which values are not visible is assigned to a DataSHIELD session, it must not be possible to retrieve it using the R session API (just like this table cannot be assigned to a plain R session). Usually it is not an issue because a user with DataSHIELD permission would not be granted permission to use the plain R API.

As a conclusion, if this matrix is non-disclosive, then make a DataSHIELD function to retrieve it. Otherwise your process breaks the security rules of DataSHIELD.


Thanks, we found another way to implement it.

Regards, Hank