I’m currently building Workday connector using Singer-tap. I discovered the configured_catalog.json that matches the ConfiguredAirbyteCatalog format. When I sync data with command
docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-workday-singer:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
,
I got the error msg:
y@y source-workday-singer % docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-workday-singer:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
{"type": "LOG", "log": {"level": "INFO", "message": "Starting discover"}}
{"type": "LOG", "log": {"level": "INFO", "message": "Downloading XSD to determine table schema \"INT_DWH_Publisher_Combined_Journal_Lines_Report\"."}}
{"type": "LOG", "log": {"level": "INFO", "message": "Finished discover"}}
{"type": "LOG", "log": {"level": "INFO", "message": "Starting sync."}}
{"type": "LOG", "log": {"level": "ERROR", "message": "CRITICAL 'NoneType' object has no attribute 'get_selected_streams'\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": "Traceback (most recent call last):\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " File \"/usr/local/bin/tap-workday-raas\", line 8, in <module>\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " sys.exit(main())\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " File \"/usr/local/lib/python3.9/site-packages/singer/utils.py\", line 229, in wrapped\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " return fnc(*args, **kwargs)\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " File \"/usr/local/lib/python3.9/site-packages/tap_workday_raas/__init__.py\", line 55, in main\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " do_sync(args.config, args.catalog, args.state)\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " File \"/usr/local/lib/python3.9/site-packages/tap_workday_raas/__init__.py\", line 30, in do_sync\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": " for stream in catalog.get_selected_streams(state):\n"}}
{"type": "LOG", "log": {"level": "ERROR", "message": "AttributeError: 'NoneType' object has no attribute 'get_selected_streams'\n"}}
Traceback (most recent call last):
File "/airbyte/integration_code/main.py", line 13, in <module>
launch(source, sys.argv[1:])
File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 117, in launch
for message in source_entrypoint.run(parsed_args):
File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/entrypoint.py", line 108, in run
for message in generator:
File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/singer/singer_helpers.py", line 168, in read
for line, text_wrapper in SingerHelper._read_lines(p):
File "/usr/local/lib/python3.9/site-packages/airbyte_cdk/sources/singer/singer_helpers.py", line 202, in _read_lines
raise Exception(f"Underlying command {process.args} failed with exit code {process.returncode}")
Exception: Underlying command tap-workday-raas --config /tmp/tmp61loj8ts/config.json --properties singer_rendered_catalog.json failed with exit code 1
I tried to do the discover and sync data in tap-workday-raas directory following this, and it successed. However, the output properties.json file from discover has different format from the configure_catalog.json that is genereated by docker (properties.json has “stream” field of string, but configured_catalog.json has “stream” field must be a map).
My configured_catalog.json looks like this:
The properties.json is like this