GitHub
05/07/2026, 5:55 AMmeltano config list to a focused subset (required, configured, and
custom settings) instead of the full 40+ setting dump. Optional settings at
their default values are hidden, with a one-line summary indicating how many
were hidden and how to reveal them.
Adds two flags:
• --all — restore the previous behavior and display every setting.
• --filter SUBSTRING — case-insensitive substring match on setting name.
Searches across all settings (including those at defaults), so it works as
a discovery tool: meltano config list <plugin> --filter ssl surfaces just
the SSL-related settings without scrolling.
Example
Before — every setting always:
$ meltano config list tap-postgres
Required: ...
Optional:
batch_size ...
exclude_schemas ...
include_schemas ...
... 30+ more lines ...
After — only what's relevant by default:
$ meltano config list tap-postgres
Required settings: database, host, password, port, user
Required:
database ... current value: 'warehouse' (from `meltano.yml`)
host ... current value: '<http://db.example.com|db.example.com>' (from `meltano.yml`)
password ... current value: None (default)
port ... current value: 5432 (default)
user ... current value: 'analytics' (from `meltano.yml`)
Optional settings with default values: 11 hidden. Use --all to show all.
Filter for discovery:
$ meltano config list tap-postgres --filter ssl
Optional:
ssl_cert ... current value: None (default)
ssl_key ... current value: None (default)
ssl_mode ... current value: 'prefer' (default)
ssl_root_cert ... current value: None (default)
Implementation notes
• Bucketing already split required / configured / optional / custom; the
change is to drop the Optional: bucket from rendering when neither
--all nor --filter is supplied, and to track the hidden count for the
trailing summary line.
• --filter is applied across all buckets. The validation-groups summary is
preserved in filter mode so a partial match in Required: is framed
honestly (a single matching setting in a multi-group plugin would
otherwise read as if it were the full required set).
• Empty / whitespace-only --filter values are treated as no filter,
rather than silently matching every setting.
• For --extras, the same hide-defaults rule applies; the historical
un-headered listing is preserved when there's no Configured: section to
disambiguate from.
• `--all`/`show_all` mirrors the existing precedent in
src/meltano/cli/select_entities.py.
Behavior changes (worth reading)
This PR changes the default output of meltano config list <plugin> in two
visible ways:
1. Default listing hides optional-at-default settings. Scripts that grep
for a specific setting line (e.g. meltano config list tap-foo | grep batch_size) will now return zero lines silently when that setting is at
its default value. The fix is one flag away (--all), but the change is
silent rather than failing loudly. Structural parsers that depended on
the Optional: section or the full enumeration should pass --all.
2. --all --extras introduces a new Configured: section. Non-custom
extras whose source is not DEFAULT are now rendered under a
Configured: header instead of being mixed into the un-headered listing.
When there are no configured extras, the historical un-headered listing
is preserved. Strictly an additive UX change, but --extras output
shape callers should be aware.
Tests
54 tests pass in tests/meltano/cli/test_config.py, including 12 new tests
covering: default-hides-optional, exact hidden-count sentence, hidden-count
for a single hidden setting, --all restores full output, Meltano-itself
default, filter substring, filter searches across defaults, filter matches
only configured, filter treats pattern as literal substring, filter with
empty string, filter composes with --extras, --extras alone hides
default-valued non-custom extras, --all --extras renders the Configured:
header above non-default extras, filter no-match notice.
Docs
docs/docs/reference/command-line-interface.mdx updated with examples for
the new default behavior, --all, and --filter.
Checklist
• I have read the contribution guide
Was generative AI tooling used to co-author this PR?
• Yes (please specify the tool below)
Generated-by: Claude Code (Anthropic) following the agentic coding guidelines
Related Issues
• Closes #9873
Summary by Sourcery
Adjust meltano config list to show a focused subset of settings by default and add flags for full listing and name-based filtering.
New Features:
• Add a --all flag to meltano config list to include optional settings at their default values in the output.
• Add a --filter SUBSTRING flag to meltano config list to show only settings whose names contain a given case-insensitive substring, across all settings including those at defaults.
Enhancements:
• Change the default meltano config list output to hide optional settings at their default values and display a summary of how many were hidden, with guidance on using --all.
• Refine extras listing so default-valued extras are hidden by default, with --all --extras producing a structured output that highlights configured extras while preserving historical unheadered output when appropriate.
• Ensure validation group summaries are consistently shown for non-extras listings to clarify the meaning of the Required: section, including when filters are applied.
Documentation:
• Update CLI reference documentation with the new default behavior of meltano config list and usage examples for the --all and --filter options.
Tests:
• Extend tests/meltano/cli/test_config.py with coverage for the new default-hiding behavior, hidden-count messaging, --all, --filter, extras interactions, and no-match handling.
meltano/meltanoGitHub
05/07/2026, 7:24 AMGitHub
05/07/2026, 7:50 AMGitHub
05/21/2026, 1:13 AMGitHub
05/29/2026, 3:31 PM