Skip to main content

envtether

Static Configuration Intelligence for Modern Python Applications

PyPI version Python versions License: MIT Code style: black

envtether is an enterprise-grade static analysis tool designed to help developers understand, validate, secure, and maintain project configuration before deployment.

It acts as the Ruff, SonarQube, or ESLint of application configuration, providing deep insights into how your configuration variables are defined, used, and deployed across your entire stack.


🌟 Key Features

  • Comprehensive Discovery: Parses Python code (AST-level), .env files, Docker Compose, Kubernetes manifests, GitHub Actions, Terraform, and more.
  • Deep Framework Support: Native support for FastAPI, Flask, Django, Pydantic BaseSettings, Dynaconf, and standard os.getenv.
  • Advanced Secret Detection: Combines heuristic regex patterns with Shannon entropy analysis to detect hardcoded and exposed credentials (AWS, Azure, GCP, OpenAI, Stripe, etc.) with minimal false positives.
  • Cross-File Drift Detection: Identifies misalignments between your .env.example, Docker Compose, and CI/CD pipelines.
  • Health Scoring: Computes a holistic health score (0-100) based on 11 dimensions of configuration hygiene, giving you an immediate sense of production readiness.
  • Dependency Graph: Builds a directed dependency graph connecting variables to services, files, and deployment targets. Exportable to Mermaid, Graphviz DOT, JSON, and interactive HTML.
  • Automated Documentation: Generates beautiful Markdown and HTML documentation of your project's configuration variables.
  • CI/CD Integration: Supports SARIF output for GitHub Advanced Security and other CI/CD dashboards.

🚀 Installation

envtether requires Python 3.12 or newer.

pip install envtether

Or using uv:

uv tool install envtether

🛠️ Quick Start

Navigate to your project's root directory and run the CLI:

1. Scan and Analyze

# Full interactive scan with Rich console output
envtether scan .

# Run a comprehensive health check (fails on critical issues)
envtether doctor .

2. Generate a Dependency Graph

Visualise how your configuration connects to your codebase and infrastructure:

envtether graph . --format html --output config-graph.html

3. Generate Documentation

Auto-generate a beautiful configuration reference for your team:

envtether docs . --format markdown --output CONFIG.md

4. CI/CD Integration

Run envtether in your CI pipeline to catch configuration drift and exposed secrets before they are merged:

envtether ci . --format sarif > envtether-results.sarif

🧠 How It Works

  1. Scanning: Recursively finds all relevant files (ignoring .gitignore, node_modules, etc.).
  2. Architecture Discovery: Detects the project type (e.g. FastAPI, Docker), cloud providers, and service dependencies (e.g. Redis, PostgreSQL).
  3. AST Analysis: Parses Python code using ast to find os.getenv, os.environ, and Pydantic BaseSettings declarations.
  4. Format Analysis: Parses .env, Docker Compose, Kubernetes manifests, and Terraform files to track variable definitions.
  5. Cross-Validation: Compares variable sets across files to detect drift (e.g. variable defined in Docker Compose but missing in .env.example).
  6. Secret Detection: Runs high-performance entropy checks and pattern matching on configuration values.
  7. Reporting: Aggregates findings, computes a health score, and exports to the requested format.

⚙️ Configuration

Initialise a configuration file in your repository:

envtether init .

This creates a .envtether.toml file where you can customise rules, secret detection thresholds, ignore paths, and more.

🔌 Plugin System

envtether is designed with a robust protocol-based plugin architecture. You can easily extend it to support proprietary configuration formats, internal tools, or new frameworks.

🤝 Contributing

We welcome contributions! Please see our Contributing Guide and Code of Conduct.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🛡️ Security

If you discover a security vulnerability within envtether, please review our Security Policy for reporting guidelines.

Metadata

Release files for envtether 26.7.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for envtether 26.7.20
File Size Uploaded Provenance Actions
envtether-26.7.20.tar.gz 65.8 kB Without provenance Details for envtether-26.7.20.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for envtether 26.7.20
File Interpreter ABI Platform Actions
envtether-26.7.20-py3-none-any.whl Python 3 none any Details for envtether-26.7.20-py3-none-any.whl

Total release size: 159.5 kB

Release files / envtether-26.7.20.tar.gz

Download URL envtether-26.7.20.tar.gz
Size 65.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2f3814b0cc2e566cf2457c2562ee2ccd3b7fcbdbc806fa785a76c18313a87fee
BLAKE2b-256 checksum
How to use checksums
2acf807f875cac62af832e8a4c25a28dd89aef32bc3e7764904044aa510751fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / envtether-26.7.20-py3-none-any.whl

Download URL envtether-26.7.20-py3-none-any.whl
Size 93.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00e57d01e8d342ddcacf4de16e376fd074e581f49afb39100c44f243a1f2e7d4
BLAKE2b-256 checksum
How to use checksums
d5e4cb8601b8337c4fe7be831cf4807e54918777e2ba21d6fd198b14a5a4ac8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Security for envtether 26.7.20

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

26.7.20 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page