Repository navigation
Remove the legacy settings sources, the promotional text and the credentials in -vv logs - #112
Merged
Merged
Conversation
…entials in -vv logs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Six release items for 2.0 plus one removal: the legacy
config.pyandHOST/KEYsettings sources are gone (the release blockers), the egress PDF and the terminal no longer promote anything, a fully unsized egress estimate shows "–" instead of a zero with a plus,-vvno longer writes signing details or credentials anywhere, and the two-second fake spinner inprint_stepis gone.Changes
Settings (breaking)
cloudexit/settings.py: removed the module-levelimport config,_legacy_config_layer,_legacy_env_layer, their entries inload_settingsand thelegacy …source labels. Precedence is now flags >CLOUDEXIT_*environment > config file.config.pyis never imported, opened or parsed, and the values ofHOST/KEYare never read into a setting, logged or passed on.cloudexit/cli/parser.pyandconfig.example.tomlstate the new precedence.README.md:119still documents both legacy sources as working — now outdated, for the separate README review.Report
egress_report.py,egress_sections.py,egress.py,wording.py,sections.py: "Next Steps" and its wording keys,next_steps_facts,fa_uploaded_linkandBOOK_DEMO_URLremoved.PRODUCT_SITESis kept for the HTML report.egress.py,html_egress.py: when at least one data-bearing resource exists and none has a size, the data volume, billable volume, fee and table totals showev_dash, no "+" is appended, and the free-tier headroom sentence and bar are left out. Partial sizing keeps "x GiB+" / "$y+"; a measured zero keeps "0.0 GiB" / "$0.00"; an empty scope is unchanged.size_unknownflag count: theegress_unsizedsample has a row with no size and no flag, and the flag count would contradict its own "0 of 5 sized" strip.Logging
botocore.authandbotocore.credentialsjoin_ALWAYS_QUIET;botocore.endpointstays at DEBUG under-vvfor its URLs, status codes and timings.cloudexit/log_redaction.pyadds alogging.Filterto the console andrun.loghandlers at every verbosity. It redacts the formatted record, because the secret usually arrives inside an object passed as a%sargument rather than in the format string.Authorizationheader value is redacted, soCredential=REDACTED/is preserved only whereCredential=appears outside a header, such as a presigned URL. This is stricter than keeping the credential scope in the header and follows AGENTS.md, "never log theAuthorizationheader".Terminal
cloudexit/cli/app.py: the end-of-run block is gone. Platform messages are neutral and name the host only, without a path, query or credentials; an offline run is status ok, not a warning; reducing an explicit Standard run to Basic is one neutral ok line.cloudexit/cli/prompts.py:prompt_required_inputstakesask_assessment_type; the depth question is asked only when a platform is configured and the upload is not off or a dry run. "EscapeCloud - Community Edition" stays as the program identity.cloudexit/terminal.py:print_step(status="pending")no longer opens a spinner and sleeps for two seconds. No caller used it.Tests
config, and subprocess runs ofpython -m cloudexit --versionandconfig showin a directory holding aconfig.pythat would write a marker file. The marker is never created.run.log, that "REDACTED" appears, and that a secret inrecord.argsis caught.HOST/KEYin the environment uploading nothing under--upload=auto.tests/support/egress.pyfollows the_summarize_totalssignature.Compatibility
config.pyand theHOST/KEYenvironment variables are no longer read. One warning helps users who still rely on them. A run that depended on them now stays offline, or fails with "missing platform" under--upload=on.CLOUDEXIT_*, exit codes, the dataset, the sync document and thedocs/api-v2/copy.cloudexit config showis unchanged apart from the removed legacy sources.egress_unsizedreplaces "0.0 GiB+", "$0.00+", "0.00+" and the headroom tile with "–" in both the PDF and the HTML.-vvno longer writes signing details or credentials to the console orrun.log.