Letting tap developers unselect certain streams in the default catalog #1652
Replies: 6 comments 7 replies
-
@edgarrmondragon wow that's a nice simple way of doing it. This would be a nice feature I don't have it come up too often but it does pop up now and again Another scenario that comes up with all SQL taps is the infromation-schema esk tables. re MeltanoLabs/tap-postgres#54 , in my opinion we should be able to select those tables if we want them, but it doesn't make a ton of sense to have them selected by default as most of the time you don't actually want the information schema information. |
Beta Was this translation helpful? Give feedback.
-
Just to chime in here with a couple thoughts. Yes, I definitely would agree this would be super helpful - and the use case you mentioned about very large streams being added and not wanting these new streams to slow down users who are running stable productions in production using the default selection rules. The Related:
Thanks for raising, @edgarrmondragon ! |
Beta Was this translation helpful? Give feedback.
-
@edgarrmondragon this is a great idea 🙌 I had a similar thought when working on the test framework, with a slightly different approach. Given that the Meltano Adding these capabilities to the standard tap config would allow users of SDK-based taps to apply selection in config, including the Edit: Idea more coherently would be to allow developers to supply default selection values in config as part of porting selection in general to the SDK. This might solve the testing use case and the newly added stream problem together (by supplying a default selection and enabling/promoting selection overrides other than |
Beta Was this translation helpful? Give feedback.
-
This came up again today in meltano/hub#1295 related to voxmedia/tap-facebook-pages#8 (comment) where a subset of streams has some custom hardcoded logic that only the tap developer's org can use. |
Beta Was this translation helpful? Give feedback.
-
This is supported since v0.27.0. |
Beta Was this translation helpful? Give feedback.
-
The SDK tries to be helpful to people new to singer and not familiar with catalogs, by selecting all available streams by default in taps with known streams, which is the case of taps for most API sources.
However there are situations in which a Tap developer may which to change this behavior for certain streams and mark them as not selected in the default catalog. Users would still be able to select those streams normally by editing the catalog file or using Meltano's
select
feature.A few scenarios where this would be useful come to mind:
Out in the wild
feat: Add traffic streams MeltanoLabs/tap-github#193
The traffic streams require additional permissions on the GitHub token.
initial new stream with integration logs MeltanoLabs/tap-slack#14
Similarly, the new stream requires admin privileges.
feat: Add tags endpoint MeltanoLabs/tap-stackexchange#96
The
tags
endpoint is massive in some sites. Would be nice to make it opt-in.https://github.com/MeltanoLabs/tap-gitlab
A bunch of streams are opt-in, based on config.
Proposal
This would be as easy as adding a class attributes to the base stream class:
Then the generated catalog metadata would check this attribute to decide whether the stream is selected when there's no input catalog (i.e.
--catalog
is not passed or the Tap is run in discovery mode).I'm curious what folks think.
cc @kgpayne @visch
Beta Was this translation helpful? Give feedback.
All reactions