diff --git a/ingestion/src/metadata/ingestion/source/dashboard/quicksight/metadata.py b/ingestion/src/metadata/ingestion/source/dashboard/quicksight/metadata.py index 40bc07758dd..660ef77f61e 100644 --- a/ingestion/src/metadata/ingestion/source/dashboard/quicksight/metadata.py +++ b/ingestion/src/metadata/ingestion/source/dashboard/quicksight/metadata.py @@ -57,6 +57,9 @@ class QuicksightSource(DashboardServiceSource): super().__init__(config, metadata_config) self.aws_account_id = self.service_connection.awsAccountId self.dashboard_url = None + self.aws_region = ( + self.config.serviceConnection.__root__.config.awsConfig.awsRegion + ) self.default_args = { "AwsAccountId": self.aws_account_id, "MaxResults": QUICKSIGHT_MAXRESULTS, @@ -129,14 +132,6 @@ class QuicksightSource(DashboardServiceSource): """ Method to Get Dashboard Entity """ - self.dashboard_url = self.client.get_dashboard_embed_url( - AwsAccountId=self.aws_account_id, - DashboardId=dashboard_details["DashboardId"], - IdentityType=self.config.serviceConnection.__root__.config.identityType.value, - Namespace=self.config.serviceConnection.__root__.config.namespace - or "default", - )["EmbedUrl"] - yield CreateDashboardRequest( name=dashboard_details["DashboardId"], dashboardUrl=self.dashboard_url, @@ -176,12 +171,16 @@ class QuicksightSource(DashboardServiceSource): self.status.filter(chart["Name"], "Chart Pattern not allowed") continue + self.dashboard_url = ( + f"https://{self.aws_region}.quicksight.aws.amazon.com/sn/dashboards" + f'/{dashboard_details.get("DashboardId")}' + ) yield CreateChartRequest( name=chart["SheetId"], displayName=chart["Name"], description="", chartType=ChartType.Other.value, - chartUrl=f"{self.dashboard_url}/sheets/{chart['SheetId']}", + chartUrl=self.dashboard_url, service=self.context.dashboard_service.fullyQualifiedName.__root__, ) self.status.scanned(chart["Name"]) diff --git a/ingestion/tests/unit/topology/dashboard/test_quicksight.py b/ingestion/tests/unit/topology/dashboard/test_quicksight.py index 510b50679d7..480dea02f19 100644 --- a/ingestion/tests/unit/topology/dashboard/test_quicksight.py +++ b/ingestion/tests/unit/topology/dashboard/test_quicksight.py @@ -92,7 +92,7 @@ EXPECTED_DASHBOARD = CreateDashboardRequest( name="552315335", displayName="New Dashboard", description="", - dashboardUrl="https://dashboards.example.com/embed/1234", + dashboardUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335", charts=[], tags=None, owner=None, @@ -106,7 +106,7 @@ EXPECTED_DASHBOARDS = [ displayName="Top Salespeople", description="", chartType="Other", - chartUrl="https://dashboards.example.com/embed/1234/sheets/1108771657", + chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335", tables=None, tags=None, owner=None, @@ -117,7 +117,7 @@ EXPECTED_DASHBOARDS = [ displayName="Milan Datasets", description="", chartType="Other", - chartUrl="https://dashboards.example.com/embed/1234/sheets/1985861713", + chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335", tables=None, tags=None, owner=None, @@ -128,7 +128,7 @@ EXPECTED_DASHBOARDS = [ displayName="Page Fans", description="", chartType="Other", - chartUrl="https://dashboards.example.com/embed/1234/sheets/2025899139", + chartUrl="https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335", tables=None, tags=None, owner=None, @@ -137,10 +137,6 @@ EXPECTED_DASHBOARDS = [ ] -def mock_get_dashboard_embed_url(AwsAccountId, DashboardId, IdentityType, Namespace): - return {"EmbedUrl": "https://dashboards.example.com/embed/1234"} - - class QuickSightUnitTest(TestCase): """ Implements the necessary methods to extract @@ -158,10 +154,11 @@ class QuickSightUnitTest(TestCase): mock_quicksight_config["source"], self.config.workflowConfig.openMetadataServerConfig, ) - self.quicksight.dashboard_url = "https://dashboards.example.com/embed/1234" + self.quicksight.dashboard_url = ( + "https://us-east-2.quicksight.aws.amazon.com/sn/dashboards/552315335" + ) self.quicksight.context.__dict__["dashboard"] = MOCK_DASHBOARD self.quicksight.context.__dict__["dashboard_service"] = MOCK_DASHBOARD_SERVICE - self.quicksight.client.get_dashboard_embed_url = mock_get_dashboard_embed_url @pytest.mark.order(1) def test_dashboard(self): diff --git a/openmetadata-docs/content/deployment/docker/index.md b/openmetadata-docs/content/deployment/docker/index.md index a35575df8b1..f89ddd90c77 100644 --- a/openmetadata-docs/content/deployment/docker/index.md +++ b/openmetadata-docs/content/deployment/docker/index.md @@ -148,7 +148,7 @@ If you are planning on going to PROD, we recommend to validate below points: - MySQL and OpenSearch (ElasticSearch) are available. - OpenMetadata-Server require the minimum configuration of 2vCPU and 6Memory (GiB) - OpenMetadata-Ingestion require the minimum configuration of 2vCPU and 8Memory (GiB) -- We also recommend to bind Docker Volumes for data persistence. Minimum disck space required would be 128 Gib. Learn how to do so [here](/deployment/docker/volumes). +- We also recommend to bind Docker Volumes for data persistence. Minimum disk space required would be 128 Gib. Learn how to do so [here](/deployment/docker/volumes). ### Steps for Deploying Ingestion - Download the docker-compose.yml file from the release page [here](https://github.com/open-metadata/OpenMetadata/releases). - Update the environment variables below for OpenMetadata-Ingestion Docker Compose backed systems to connect with Database.