Skip to content

feat(gooddata-sdk): [AUTO] Add CatalogDataSourceAiLakehouse entity model class#1462

Closed
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P003-ailakehouse-datasource-type
Closed

feat(gooddata-sdk): [AUTO] Add CatalogDataSourceAiLakehouse entity model class#1462
yenkins-admin wants to merge 1 commit intomasterfrom
feature/auto-P003-ailakehouse-datasource-type

Conversation

@yenkins-admin
Copy link
Copy Markdown
Contributor

Add CatalogDataSourceAiLakehouse entity model class for the new AI Lakehouse datasource type introduced in gdc-nas.
P003 | Workflow: https://github.com/gooddata/gdc-nas/actions/runs/23236985423

What changed in gdc-nas

  • CQ-1987 (b4e5b11): Added AILAKEHOUSE=27 to DatabaseType proto enum (dbtype.proto) and all OpenAPI spec DatabaseType enum arrays in metadata-api and scan-model. Added enableAiLakehouseDataSource feature flag. AILAKEHOUSE datasource is restricted — cannot be created/deleted via layout or entity APIs; only exposes id/type/name/cacheStrategy/permissions fields.
  • CQ-2000 (e48abbd): Added new createDataSource gRPC RPC to MetadataStoreService in metadata.proto with full CreateDataSourceRequest message (17 fields). The ai-lake provisioner now calls this RPC after successful infrastructure provisioning to register an AILAKEHOUSE datasource.
  • CQ-1968 (ba71f5a): Added required storage_ids (repeated string) field to ProvisionDatabaseRequest in ai_lake.proto. Moved OperationType from top-level enum to nested enum inside OperationMetadata; renamed UNSPECIFIED to OPERATION_TYPE_UNSPECIFIED.

What was implemented in SDK

  • Added CatalogDataSourceAiLakehouse entity model class following the CatalogDataSourceGdStorage pattern (no credential fields, type='AILAKEHOUSE'), reflecting the backend restriction that AILAKEHOUSE datasources only expose id/type/name/cacheStrategy/permissions.
  • Registered CatalogDataSourceAiLakehouse in the datasource type discriminator mapping so from_api() correctly deserializes AILAKEHOUSE API responses.
  • Exported CatalogDataSourceAiLakehouse from gooddata_sdk/__init__.py public API surface.
  • Added unit tests covering instantiation and from_api() deserialization round-trip.
  • The declarative model layer already handles AILAKEHOUSE implicitly via the updated allowed-values validator in the regenerated API client — no declarative class change needed.

Files modified

  • packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/entity_model/data_source.py
  • packages/gooddata-sdk/src/gooddata_sdk/__init__.py
  • packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py

JIRA: PENDING (Jira ticket will be created after review)
Risk: Low

…del class

Add CatalogDataSourceAiLakehouse following the CatalogDataSourceGdStorage
pattern (no credentials, empty schema) to represent the new AILAKEHOUSE
datasource type. Export the new class from the public __init__.py surface
and add unit tests covering instantiation and from_api deserialization.
@tychtjan
Copy link
Copy Markdown
Contributor

DUPLICATE - CLOSE

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.28%. Comparing base (b65ee3f) to head (9cc757e).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1462   +/-   ##
=======================================
  Coverage   77.27%   77.28%           
=======================================
  Files         227      227           
  Lines       14687    14692    +5     
=======================================
+ Hits        11350    11355    +5     
  Misses       3337     3337           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hkad98 hkad98 closed this Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants