Sample: Filter Data Source Connections
This sample illustrates how to filter published data sources that use a given connection type. It uses a pulled hook as the connection details are not available until the data source has been fully retrieved.
Filter Class
from typing import Optional
from tableau_migration import (
ContentItemPulledContext,
ContentItemPulledHookBase,
FilterStatus,
IPublishableDataSource)
class DataSourceConnectionPulled(ContentItemPulledHookBase[IPublishableDataSource]):
def execute(self, ctx: ContentItemPulledContext[IPublishableDataSource]) -> Optional[ContentItemPulledContext[IPublishableDataSource]]:
if any(c.type.casefold() == "postgres".casefold() for c in ctx.pulled_item.connections):
ctx.status = FilterStatus.CASCADE_SKIP
return ctx
Registration
plan_builder.hooks.add(DataSourceConnectionPulled)
See hook registration for more details.