<#9994 feat(cli): Show a subset of settings in `me...
# meltano-repo-activity
g
#9994 feat(cli): Show a subset of settings in `meltano config list` by default Pull request opened by mahangu Description Defaults
meltano 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:
Copy code
$ meltano config list tap-postgres
Required: ...
Optional:
  batch_size ...
  exclude_schemas ...
  include_schemas ...
  ... 30+ more lines ...
After — only what's relevant by default:
Copy code
$ 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:
Copy code
$ 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/meltano