.gitignore
.pre-commit-config.yaml
CONTRIBUTING.md
LICENSE
README.md
TODO.md
cli-command-flows.md
devbox.json
devbox.lock
pyproject.toml
.github/dependabot.yml
.github/workflows/publish.yml
.vscode/settings.json
docs/cli-options.md
docs/pdf_executive_sanity_check.md
docs/reliability_metrics.md
docs/report-flow-diagram.md
docs/report_period.md
docs/security-analytics-fetch.md
docs/developers/http-vs-cache-metrics.md
docs/developers/pdf_layout_primitives.md
docs/developers/security_score_policy_observations.md
docs/examples/report-detailed-png-medium.pdf
docs/examples/report-detailed-svg-high-single-page.pdf
docs/examples/report-executive-png-medium.pdf
docs/examples/report-minimal-png-medium.pdf
docs/sample-data/README.md
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/_index.json
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/2026-03-15/dns.json
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/2026-04-01/cache.json
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/2026-04-01/dns.json
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/2026-04-01/http.json
docs/sample-data/cache/a1b2c3d4e5f6789012345678abcdef01/2026-04-01/security.json
docs/sample-data/report/report-sample.json
src/cloudflare_executive_report/__init__.py
src/cloudflare_executive_report/aggregate.py
src/cloudflare_executive_report/cf_client.py
src/cloudflare_executive_report/cli.py
src/cloudflare_executive_report/cli_common.py
src/cloudflare_executive_report/config.py
src/cloudflare_executive_report/exits.py
src/cloudflare_executive_report/zone_health.py
src/cloudflare_executive_report.egg-info/PKG-INFO
src/cloudflare_executive_report.egg-info/SOURCES.txt
src/cloudflare_executive_report.egg-info/dependency_links.txt
src/cloudflare_executive_report.egg-info/entry_points.txt
src/cloudflare_executive_report.egg-info/requires.txt
src/cloudflare_executive_report.egg-info/top_level.txt
src/cloudflare_executive_report/aggregators/__init__.py
src/cloudflare_executive_report/aggregators/audit.py
src/cloudflare_executive_report/aggregators/cache.py
src/cloudflare_executive_report/aggregators/certificates.py
src/cloudflare_executive_report/aggregators/dns.py
src/cloudflare_executive_report/aggregators/dns_records.py
src/cloudflare_executive_report/aggregators/http.py
src/cloudflare_executive_report/aggregators/http_adaptive.py
src/cloudflare_executive_report/aggregators/registry.py
src/cloudflare_executive_report/aggregators/security.py
src/cloudflare_executive_report/cache/__init__.py
src/cloudflare_executive_report/cache/envelope.py
src/cloudflare_executive_report/cache/index.py
src/cloudflare_executive_report/cache/lock.py
src/cloudflare_executive_report/cache/paths.py
src/cloudflare_executive_report/common/__init__.py
src/cloudflare_executive_report/common/aggregation_helpers.py
src/cloudflare_executive_report/common/colo_locations.py
src/cloudflare_executive_report/common/constants.py
src/cloudflare_executive_report/common/dates.py
src/cloudflare_executive_report/common/formatting.py
src/cloudflare_executive_report/common/logging_config.py
src/cloudflare_executive_report/common/period_resolver.py
src/cloudflare_executive_report/common/report_cache.py
src/cloudflare_executive_report/common/report_period.py
src/cloudflare_executive_report/common/report_snapshot.py
src/cloudflare_executive_report/common/retention.py
src/cloudflare_executive_report/email/__init__.py
src/cloudflare_executive_report/email/smtp.py
src/cloudflare_executive_report/executive/__init__.py
src/cloudflare_executive_report/executive/nist_catalog.py
src/cloudflare_executive_report/executive/phrase_catalog.py
src/cloudflare_executive_report/executive/portfolio.py
src/cloudflare_executive_report/executive/rules.py
src/cloudflare_executive_report/executive/summary.py
src/cloudflare_executive_report/fetchers/__init__.py
src/cloudflare_executive_report/fetchers/audit.py
src/cloudflare_executive_report/fetchers/cache.py
src/cloudflare_executive_report/fetchers/certificates.py
src/cloudflare_executive_report/fetchers/dns.py
src/cloudflare_executive_report/fetchers/dns_records.py
src/cloudflare_executive_report/fetchers/graphql_common.py
src/cloudflare_executive_report/fetchers/http.py
src/cloudflare_executive_report/fetchers/http_adaptive.py
src/cloudflare_executive_report/fetchers/registry.py
src/cloudflare_executive_report/fetchers/security.py
src/cloudflare_executive_report/fetchers/types.py
src/cloudflare_executive_report/pdf/__init__.py
src/cloudflare_executive_report/pdf/charts.py
src/cloudflare_executive_report/pdf/cover.py
src/cloudflare_executive_report/pdf/document.py
src/cloudflare_executive_report/pdf/figure_quality.py
src/cloudflare_executive_report/pdf/layout_spec.py
src/cloudflare_executive_report/pdf/loader.py
src/cloudflare_executive_report/pdf/maps.py
src/cloudflare_executive_report/pdf/orchestrate.py
src/cloudflare_executive_report/pdf/primitives.py
src/cloudflare_executive_report/pdf/security_display.py
src/cloudflare_executive_report/pdf/stream_fragments.py
src/cloudflare_executive_report/pdf/styles.py
src/cloudflare_executive_report/pdf/theme.py
src/cloudflare_executive_report/pdf/streams/__init__.py
src/cloudflare_executive_report/pdf/streams/appendix.py
src/cloudflare_executive_report/pdf/streams/cache.py
src/cloudflare_executive_report/pdf/streams/dns.py
src/cloudflare_executive_report/pdf/streams/executive_summary.py
src/cloudflare_executive_report/pdf/streams/http.py
src/cloudflare_executive_report/pdf/streams/portfolio.py
src/cloudflare_executive_report/pdf/streams/security.py
src/cloudflare_executive_report/report/__init__.py
src/cloudflare_executive_report/report/baseline_selection.py
src/cloudflare_executive_report/report/command_flow.py
src/cloudflare_executive_report/report/health_refresh.py
src/cloudflare_executive_report/report/period.py
src/cloudflare_executive_report/report/snapshot.py
src/cloudflare_executive_report/report/zone_block.py
src/cloudflare_executive_report/sync/__init__.py
src/cloudflare_executive_report/sync/day_processor.py
src/cloudflare_executive_report/sync/options.py
src/cloudflare_executive_report/sync/orchestrator.py
tests/test_aggregate.py
tests/test_baseline_selection.py
tests/test_cache.py
tests/test_clean_scopes.py
tests/test_cli_argv.py
tests/test_cli_clean.py
tests/test_cli_common.py
tests/test_cli_pdf_stream_order.py
tests/test_config_output_paths.py
tests/test_dates.py
tests/test_email_smtp.py
tests/test_executive_hsts_rules.py
tests/test_executive_portfolio.py
tests/test_executive_rules.py
tests/test_executive_security_posture_score.py
tests/test_executive_summary.py
tests/test_fetchers_http_adaptive.py
tests/test_fetchers_optional_snapshots.py
tests/test_fetchers_security.py
tests/test_logging_config.py
tests/test_pdf_charts.py
tests/test_pdf_executive_summary.py
tests/test_pdf_figure_quality.py
tests/test_pdf_loader.py
tests/test_pdf_primitives.py
tests/test_period_resolver.py
tests/test_report_pdf.py
tests/test_report_rotation.py
tests/test_report_snapshot.py
tests/test_retention.py
tests/test_security_display.py
tests/test_stream_fragments.py