Share Datasource automatically

Hello Helical,

I am using Helical Insight 4.0. I would like to share the datasource automatically to all users without explicitly sharing it every time I share reports/dashboards. Is there a way to do this?

Thank You,
Snow.

Hello Snow,

. In Helical Insight, we have the concept of Public and Private. In order to share folders with all the users without explicitly sharing using the sharing option, you can make the folder public. To know more about this, you can refer the following blog:

Similar to folders, datasources can also be made public, i.e., accessible to all users without explicit sharing.

The details of the datasource connections are available in globalconnections.xml file which is located inside.../hi/hi-repository/System/Admin/ folder.

Edit the globalconnections.xml file. You will see that with each connection, there is a tag and a tag. These tags refer to the owner of the datasource connection and the requirements for sharing.

Comment out these two tags and save the file.

image

Once you save the file, the datasource connection for which security and sharing tags are removed will be automatically shared with all users and roles.

However, the “Edit” and "Sharing"permissions for this datasource connection will be disabled as by default the datasource connection is shared with Read Only permissions.

image

Thank You,
Helical Insight.

UPDATE: From Helical Insight version 4.1.1.18666 GA we have migrated all the entries of globalconnection.xml into database for better performance as well as concurrency. Hence the above steps might not work if you are on the newer version.

For the newer version if you would like to make a specific datasource public the steps should be
a. All this datasource related information is present in the table called DS_GLOBAL_CONNECTIONS
This specific table has got a column called as CREATED_BY. This specific column has the userid of the user who has created that specific connection. For example userid of hiadmin is 1.

So if you want to make all the datasource public you can simply do a update operation on this column and make it null.
(for example SQL could be something like :
UPDATE DS_GLOBAL_CONNECTIONS
SET CREATED_BY = NULL)

Whereas if you want to make a specific datasource only public then make it NULL for that specific GLOBAL_ID
(for example SQL could be something like :
UPDATE DS_GLOBAL_CONNECTIONS
SET CREATED_BY = NULL
WHERE GLOBAL_ID = 1;)

Refer to below image to see the how the connectionID and respective GlobalID
image

NOTE: If you are using derby as your userrole mgmt database, you will not be able to do these update operations as long as Helical Insight application service is running. So first stop that and then accordingly update derby and then restart.