Skip to content

Conversation

pedro93
Copy link
Collaborator

@pedro93 pedro93 commented Sep 8, 2025

This PR adds support for PowerBI Government Community Cloud (GCC) environment.

Changes:

Add environment configuration to support both commercial and government cloud
Update API endpoints to use different base URLs for government cloud
Add example recipe for PowerBI GCC configuration
Add test for PowerBI GCC environment
Update configuration documentation

Breaking Changes:

None. Default environment remains 'commercial' for backward compatibility

Example Configuration:

source:
  type: "powerbi"
config:
  environment: government # Use 'government' for PowerBI Government Community Cloud (GCC)
  tenant_id: your-tenant-id
  client_id: your-client-id
  client_secret: your-client-secret

@github-actions github-actions bot added ingestion PR or Issue related to the ingestion of metadata docs Issues and Improvements to docs labels Sep 8, 2025
@datahub-cyborg datahub-cyborg bot added the needs-review Label for PRs that need review from a maintainer. label Sep 8, 2025
Copy link

codecov bot commented Sep 8, 2025

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
7354 4 7350 74
View the top 3 failed test(s) by shortest run time
tests.lineage.test_lineage_sdk::test_filtered_column_level_lineage
Stack Traces | 0.015s run time
test_client = <datahub.sdk.main_client.DataHubClient object at 0x7f059501e810>
test_datasets = {'downstream1': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_downstream_001,PROD)'), 'downstrea...ream_003,PROD)'), 'upstream': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_upstream_001,PROD)')}

    def test_filtered_column_level_lineage(
        test_client: DataHubClient, test_datasets: Dict[str, Dataset]
    ):
        filtered_column_lineage_results = test_client.lineage.get_lineage(
            source_urn=str(test_datasets["upstream"].urn),
            source_column="id",
            direction="downstream",
            max_hops=3,
            filter=F.and_(F.platform("mysql"), F.entity_type("dataset")),
        )
    
>       assert len(filtered_column_lineage_results) == 1
E       assert 0 == 1
E        +  where 0 = len([])

tests/lineage/test_lineage_sdk.py:185: AssertionError
tests.lineage.test_lineage_sdk::test_column_level_lineage_from_schema_field
Stack Traces | 0.017s run time
test_client = <datahub.sdk.main_client.DataHubClient object at 0x7f059501e810>
test_datasets = {'downstream1': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_downstream_001,PROD)'), 'downstrea...ream_003,PROD)'), 'upstream': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_upstream_001,PROD)')}

    def test_column_level_lineage_from_schema_field(
        test_client: DataHubClient, test_datasets: Dict[str, Dataset]
    ):
        source_schema_field = SchemaFieldUrn(test_datasets["upstream"].urn, "id")
        column_lineage_results = test_client.lineage.get_lineage(
            source_urn=str(source_schema_field), direction="downstream", max_hops=3
        )
    
>       assert len(column_lineage_results) == 3
E       assert 0 == 3
E        +  where 0 = len([])

tests/lineage/test_lineage_sdk.py:203: AssertionError
tests.lineage.test_lineage_sdk::test_table_level_lineage
Stack Traces | 0.1s run time
test_client = <datahub.sdk.main_client.DataHubClient object at 0x7f059501e810>
test_datasets = {'downstream1': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_downstream_001,PROD)'), 'downstrea...ream_003,PROD)'), 'upstream': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_upstream_001,PROD)')}

    def test_table_level_lineage(
        test_client: DataHubClient, test_datasets: Dict[str, Dataset]
    ):
        table_lineage_results = test_client.lineage.get_lineage(
            source_urn=str(test_datasets["upstream"].urn),
            direction="downstream",
            max_hops=3,
        )
    
>       assert len(table_lineage_results) == 3
E       assert 0 == 3
E        +  where 0 = len([])

tests/lineage/test_lineage_sdk.py:109: AssertionError
tests.lineage.test_lineage_sdk::test_column_level_lineage
Stack Traces | 10.1s run time
test_client = <datahub.sdk.main_client.DataHubClient object at 0x7f059501e810>
test_datasets = {'downstream1': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_downstream_001,PROD)'), 'downstrea...ream_003,PROD)'), 'upstream': Dataset('urn:li:dataset:(urn:li:dataPlatform:snowflake,test_lineage_upstream_001,PROD)')}

    def test_column_level_lineage(
        test_client: DataHubClient, test_datasets: Dict[str, Dataset]
    ):
        column_lineage_results = test_client.lineage.get_lineage(
            source_urn=str(test_datasets["upstream"].urn),
            source_column="id",
            direction="downstream",
            max_hops=3,
        )
    
>       assert len(column_lineage_results) == 3
E       assert 0 == 3
E        +  where 0 = len([])

tests/lineage/test_lineage_sdk.py:152: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

getarz4u15ster and others added 10 commits September 8, 2025 14:46
This change adds support for PowerBI Government Community Cloud (GCC) environment:

- Add environment configuration to support both commercial and government cloud
- Update API endpoints to use different base URLs for government cloud
- Add example recipe for PowerBI GCC configuration
- Update configuration documentation

Breaking Changes:
- None. Default environment remains 'commercial' for backward compatibility
- Use ConfigEnum instead of str, Enum for PowerBiEnvironment
- Fix instance variable naming and scope in data_resolver.py
- Use PowerBiEnvironment enum instead of string parameter
- List default value first in documentation
- Improve enum description to list all options
- Fix test to not access private variables
…ate instance variable naming to use underscore prefix - Convert class variables to instance variables for environment-specific URLs - Update all method references to use instance variables - Ensure proper encapsulation and naming conventions
Copy link

alwaysmeticulous bot commented Sep 8, 2025

🔴 Meticulous spotted visual differences in 20 of 1380 screens tested: view and approve differences detected.

Meticulous evaluated ~8 hours of user flows against your PR.

Last updated for commit e4ae6be. This comment will update as new commits are pushed.

Copy link

codecov bot commented Sep 8, 2025

Bundle Report

Bundle size has no change ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Issues and Improvements to docs ingestion PR or Issue related to the ingestion of metadata needs-review Label for PRs that need review from a maintainer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants