I am trying out asset-as-bundle (AAB) deployment. I have several namespaces and the dashboards for those namespaces are prefixed with the namespace-hash plus the dashboard-id. So the exported json will contain only the dashboard-id and it will be deployed to several namespaces where the dashboard-id will have the namespace_hash+dashboard_id.
How can I do that with the start-asset-bundle-import-job. I see the override-parameters args with the PrefixForAllResources but that looks like will apply to all resources.
@sagmukhe Do you have any thoughts on this? Thanks!
Hello @alltej, there is pretty good documentation on utilizing the StartAssetBundleImportJob and well as the CreateNamespace and ListNameSpaces functionalities for the AAB deployment. If there is a specific part of the process you are stuck on, I might be able to help a bit further.
Here is the developer guide for the asset bundle APIs. Please have a look.
Our source and target accounts have these asset-ids naming convention:
From: source-account assets/dashboard:
And we need to deploy to several namespaces:
So how do I deploy these with asset-as-bundle(AAB) with the available AAB api?
@DylanM Did you get a chance to look at this?
Hello @alltej, I apologize for the delay in the response. This required a bit of digging on my end but I found some awesome documentation related to namespaces. From what I can tell, bear with me here, it seems like the best solution will be to create user groups that will be linked to the users in a namespace. That group will contain the dashboard permissions and then that group can get set to the namespace.
This is the command I was seeing that might be the most relevant:
***Scenario 2: User Sharing Dashboard to Group***
aws quicksight update-dashboard-permissions --aws-account-id ############ --dashboard-id ‘123a6402-7c8e-4e50-8142-52a5bc46f4f4’ --grant-permissions Principal=‘arn:aws:quicksight:us-east-1:############:group/namespace-1/Group-4’,Actions=‘quicksight:DescribeDashboard,quicksight:QueryDashboard,quicksight:ListDashboardVersions’
I’ll link the rest of the article here because I think this will be really helpful to you. I hope this helps!
That is assigning permissions by group to dashboards within a namespace.
But I still need to create/deploy a dashboard to several namespaces with these id convention:
If I don’t provide the PrefixForAllResources optional arg, can I just populate the ID and it will apply to that ID to create or update in the target account?
"Name": "namespace1 - Dashboard In Target Account"
A namespace is a client. We cannot do cross-namespace or cross-client group/permission, hence we created assets in these naming convention : namespace1-dashboard1
I am gettting a SUCCESSFUL status from response in describe-import but I don’t see the dashboard updated. I am running in same account but I don’t think if that matters. The issue is I did not see dashboard updated or there are no new dashboards versions.
Since it is SUCCESSFUL status, Is there way to verify something is created? I don’t see any new versions created.
Helloi @alltej, I could be wrong about this but I don’t think it would create a new Dashboard, I just think it would make the dashboard viewable by people within that namespace. If you have access to the Dashboard while in an account linked to the namespace, then I think that means it worked.
Another possibility is you would need to create the Dashboard with the proper name for each Namespace and then you could assign them to a namespace.
Hello @alltej, did my response help you resolve your issue in QuickSight? If so, feel free to mark it as a solution. If not, please follow-up with some more details about the issue you are facing and I can try to guide you toward a solution. Thank you!