Bug: Null config values don't get passed to plugins, preventing Mappers from working as expected
See original GitHub issueTrying to replicate the behavior here
https://sdk.meltano.com/en/latest/stream_maps.html
{
"stream_maps": {
"customers": {
// exclude these since we're capturing them in the pii stream
"email": null,
"full_name": null
},
"customers_pii": {
"__source__": "customers",
// include just the PII and the customer_id
"customer_id": "customer_id",
"email": "email",
"full_name": "full_name",
// exclude anything not declared
"__else__": null,
},
},
}
So if you have a meltano.yml like
config:
stream_maps:
customers_pii:
"email": "email"
__else__: null
And then run meltano invoke --dump=config tap-name
the else token will not exist.
It’s not clear that this is a bug as I did some digging here and as a part of https://gitlab.com/meltano/meltano/-/issues/2334 (more specifically https://gitlab.com/meltano/meltano/-/merge_requests/1898 ) it looks like passing null values was removed as it was causing a different issue
UPDATE (AJ, 2022-08-30)
As noted below in https://github.com/meltano/meltano/issues/6382#issuecomment-1208353612, the bug is that Meltano excludes/removes config input values if they are null
.
I can confirm this is still the behavior
visch@visch-ubuntu:~/git/tap-abc$ meltano --version meltano, version 2.4.0
config: stream_maps: customers_pii: "email": "email" __else__: null
visch@visch-ubuntu:~/git/tap-abc$ meltano invoke --dump=config tap-abc { "stream_maps": { "customers_pii": { "email": "email" } }
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:15 (2 by maintainers)
Top Results From Across the Web
null value is not treated per docs when passed to modules
As a workaround we set empty string as default and set local variables conditionally.
Read more >Error handling - Apollo GraphQL Docs
For example, it throws a GRAPHQL_VALIDATION_FAILED error whenever an incoming operation isn't valid against the server's schema. Your resolvers can also throw ...
Read more >Bug listing with status RESOLVED with resolution FIXED as at ...
Bug listing with status RESOLVED with resolution FIXED as at 2022/12/17 06:46:03.
Read more >Plugin Release Notes - Fishbowl
Added Missing mapping assist prompts for E-commerce plugins ... Fixed a bug with Shopify advanced customer settings preventing the return of ...
Read more >Top 10 Most Common Spring Framework Mistakes - Toptal
IntelliJ IDEA's version of the plugin can be found here. ... Consider a Spring project with its various configuration files, services and controllers....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@tayloramurphy logging here that we had another user (and myself too) get stuck on this bug in slack today https://meltano.slack.com/archives/C01TCRBBJD7/p1671134681823139.
From my view mappers and stream maps are a differentiating meltano feature that gives flexibility and allows users to hack around broken taps/targets, especially since we are constantly recommending it in slack. It feels like we’re very close to something super powerful if it was cleaned up and documented.
After skimming this issue I see that its a challenge to fix in meltano but it is really a meltano bug 😄 . It helps if its fixed in the SDK but all taps/targets need to be upgraded to get support back, even though it already works today and meltano’s bug causes the null values to disappear.
Verified that this works with mappers but not taps (Really hard to just get the config for mappers but here we go)
meltano.yml
meltano run tap-csv pipedrive-exclude-custom-fields target-jsonl
(monkey patch in a sleep in target-jsonl)