Skip to content

[Feature]: gdal_config_sitrep() - Configuration Situational Report #12

Description

@jimbrig

gdal_config_sitrep(): Configuration Situational Report

The view tier of the GDAL configuration system (#8): a live, provenance-attributed report of the effective GDAL configuration landscape. Situational awareness is a core goal of the package - large GDAL workloads are opaque by default, and understanding "what is in effect and who set it" currently requires manual trial-and-error archaeology.

Scope (initial)

gdal_config_sitrep() returns a classed gdal_config_sitrep object (cli print, tibble::as_tibble() method) reporting, per key:

  • effective - live value from gdalraster::get_config_option() (GDAL is the single source of truth; nothing mirrored).
  • envvar - value present in the process environment.
  • set - value pinned by this package (the active gdal_config).
  • source - best-effort provenance: gdalvector | envvar | config_file | external (another package / direct gdalraster call) | unset.

Coverage: keys pinned by the package, GDAL-relevant envvars (prefix scan), config-file [configoptions] entries, plus a probe of the full known-option universe (runtime VSI metadata + driver metadata + curated core list) so externally set in-memory values for any documented key are discovered. Secret-bearing values are redacted by key pattern in all printed output.

Additional sections:

  • discovered GDAL config file (path + parsed contents; see [Feature]: GDAL Configuration File (gdalrc) I/O #13),
  • VSI path-bound options per prefix (redacted),
  • an at_load baseline sitrep stashed at package load - the state of the world as gdalvector found it, enabling "what changed since load" diffing.

Follow-up scope

  • Per-prefix credential resolution view: for each VSI prefix in use, report what is bound at the path tier, what would resolve from the global chain (and from which rung: memory/envvar/file), which credential envvars are present, whether out-of-band credential sources exist (~/.aws/credentials + AWS_PROFILE, GOOGLE_APPLICATION_CREDENTIALS, Azure connection strings, IMDS), and what gdalrc [credentials] declares. Answers "who will authenticate this request and why" without CPL_CURL_VERBOSE archaeology.
  • gdal_config_diff() against the at_load baseline (or between two sitreps).
  • Integration with the package-wide gdal_sitrep() ([Feature]: Polish gdal_sitrep() #10) as its configuration section.

Related

#8 (parent design), #13 (config file), #10 (gdal_sitrep polish)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions