Bulk add dashboards and boards to "Favorites" for a list of users

  • 15 June 2021
  • 0 replies
  • 111 views

Userlevel 2
  • Looker Staff
  • 12 replies

Hi all, 

I have been working on a use case to bulk add a specific board to “Favorites” for a list of users, which may help new users discover useful contents quicker and easier.

I am posting my script with comments to explain the workflow below for your reference. You can also run the script as a one-off task in Google Colab -- please find the link to the notebook in my Git repo. 


Here is an example for add_boards_to_users(board_id: int, users_id: list)

import looker_sdk
sdk = looker_sdk.init40()


def add_boards_to_users(board_id: int, users_id: list):

""" Add a specific board to the "Favorite" contents for a list of user

Args:
board_id (int): id of a Looker board (https://company.looker.com/boards/id)
users_id (list): a list of users in the form of a native Python list

Returns: "Successfully added!" (str)

Raises: N/A (does not explicitly raise an exception); Looker SDK will raise an error.
"""

""" This statement is using sdk.board() to retrieve content_metadata_id,
which is used as a parameter for sdk.create_content_favorite()"""
content_metadata_id = sdk.board(board_id=board_id)['content_metadata_id']

"""An admin can not update the list of favorite contents for users,
`sdk.auth.login_user()` and `sdk.auth.logout()` are called to sudo as each user to call `create_content_favorite()"""
for i in users_id:
sdk.auth.login_user(i)
params = {}
params["user_id"] = i
params["content_metadata_id"] = content_metadata_id
sdk.create_content_favorite(params)
sdk.auth.logout()

return ("Successfully added!")


# Call the function
add_boards_to_users(board_id = 1, users_id = [])

 

The logic for `add_dashboards_to_users` is the same, except that `dashboard_id` is a string (because LookML dashboard id is a string), and we are using `sdk.dashboard()` to retrieve `content_metadata_id`. You can read the rest of the script here.

Let me know if you have questions or comments! 

 

Cheers 


0 replies

Be the first to reply!

Reply