GitHub
07/18/2026, 7:08 PM--refresh-catalog support to meltano invoke for extractor plugins.
meltano invoke creates a plugin invoker directly, so it did not previously attach an ELT context with refresh_catalog=True. This change reuses the existing ELTContextBuilder path for extractors when the flag is provided, allowing invoke runs to bypass the cached catalog and run discovery again.
I also added a focused CLI regression test that verifies meltano invoke --refresh-catalog <tap> passes an invoker context where should_refresh_catalog() is true.
Checklist
• I have read the contribution guide
Was generative AI tooling used to co-author this PR?
• Yes: OpenAI Codex
Generated-by: OpenAI Codex following the agentic coding guidelines
Testing
Ran locally on Windows 11 with Python 3.14 via `uv`/`nox`.
• uv run pytest tests/meltano/cli/test_invoke.py::TestCliInvoke::test_invoke_refresh_catalog_sets_extractor_context -q
• 1 passed in 2.54s
• uv run --script noxfile.py -s pre-commit -- run ruff-check --files src/meltano/cli/invoke.py tests/meltano/cli/test_invoke.py
• ruff check Passed
• uv run --script noxfile.py -s pre-commit -- run ruff-format --files src/meltano/cli/invoke.py tests/meltano/cli/test_invoke.py
• ruff format Passed
• uv run --script noxfile.py -s pytest-3.14 -- tests/meltano/cli/test_invoke.py
• 16 passed, 1 xfailed
• The xfail is the existing Windows marker for the containerized invoke test.
Related Issues
• Closes #8858
Summary by Sourcery
Add support for forcing catalog refresh when invoking extractor plugins via the CLI.
New Features:
• Add a --refresh-catalog flag to the meltano invoke command to bypass cached catalogs for extractor plugins and rerun discovery.
Tests:
• Add a CLI regression test verifying that meltano invoke --refresh-catalog sets an extractor invoker context with catalog refresh enabled.
meltano/meltanoGitHub
07/23/2026, 2:45 PM