Releases: escapecloud/cloudexit
Release list
v1.1.2
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.1.1
Features
- Add Python packaging via pyproject.toml with a cloudexit CLI entrypoint.
- Improve generated report messaging with regulatory-aligned guidance and clearer next-step contact info.
Reporting
- Update Exit Readiness Grade presentation in both HTML and PDF reports for improved consistency and clarity.
CLI / UX
- Add post-run CLI output copy that explains optional regulatory-aligned reporting support.
v1.1.1
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.1.0
Features
- Add OIDC-compatible non-interactive authentication support for AWS and Azure.
- Keep static credential flows fully backward compatible.
AWS
- Support temporary session credentials by propagating
AWS_SESSION_TOKENthrough the full AWS pipeline. - Improve Stage 2 permission checks:
- Keep IAM user policy-name validation (
ViewOnlyAccess,AWSBillingReadOnlyAccess). - Add capability-based validation for assumed-role/federated identities (
ec2:DescribeRegions,ce:GetCostAndUsage).
- Keep IAM user policy-name validation (
Azure
- Enable non-interactive OIDC path using
DefaultAzureCredentialwhenAZURE_CLIENT_SECRETis not set. - Keep existing client secret path unchanged when
AZURE_CLIENT_SECRETis provided.
Quality
- Add/extend tests for:
- AWS session token handling
- AWS role/federated Stage 2 permission validation
- Azure non-interactive OIDC behavior
v1.1.0
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.9
Features
Add --dry-run for AWS and Azure to run a full local assessment without remote sync and write raw_data/payload.json after inventory collection. The payload can be shared and processed by the EscapeCloud Report Generator to produce a DORA-, PRA-, and MAS-aligned report without requiring the EscapeCloud Platform.
Usage
python3 main.py aws --config config.json --dry-run
python3 main.py azure --config config.json --dry-run
v1.0.9
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.8
Fixes
- Fix host/key environment handling in CI and containerized runs so platform credentials are resolved consistently.
- Ensure
INPUT_HOSTandINPUT_KEYare correctly propagated and used during action-based execution. - Align non-interactive input resolution behavior across providers (AWS and Azure).
CI Reliability
- Improve validation and fail-fast behavior when required platform connectivity inputs are missing.
- Reduce false-success scenarios by ensuring connectivity/configuration issues return deterministic non-zero exit codes.
v1.0.8
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.7
Enhancements
- Add typed CLI exit codes for assessment pipeline stages (config, credentials, permissions, inventory, risk, report generation).
- Add
--non-interactivemode for AWS and Azure execution to support CI/CD usage without prompts. - Keep existing interactive/manual UX unchanged for local users.
CI Readiness
- Add environment-variable based input resolution for non-interactive runs:
ESC_EXIT_STRATEGY,ESC_ASSESSMENT_TYPE- AWS:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGION - Azure:
AZURE_TENANT_ID,AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,ESC_SUBSCRIPTION_ID,ESC_RESOURCE_GROUP
- Add
HOST/KEYenvironment override support for platform connectivity, with fallback toconfig.py.
Reliability
- Ensure failures now return deterministic non-zero exit codes instead of silently exiting as success.
- Improve fail-fast behavior in automation contexts when required non-interactive inputs are missing.
v1.0.7
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.6
Enhancements
- Add organization metadata to Alternative Technology cards (name, link, country flag/code, region).
- Add Region filter under Resource in the Alternative Technologies panel.
- Replace card header category text with organization-focused provider metadata.
Data & Mapping
- Load and apply alternativetechnologyorganization data in report rendering.
- Add country-code normalization and region mapping buckets:
- European Union, United Kingdom, Switzerland, United States, Other.
UI
- Add filter labels (Resource, Region).
- Use inline SVG chevrons for dropdown selects.
- Improve toggle switch thumb styling consistency.
v1.0.6
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.5
Enhancements
Security
- Enable Jinja2 autoescape on HTML report templates to prevent XSS (#29)
- Add SQL table name whitelist in load_data() to prevent injection (#29)
- Enforce HTTPS in all API URL builders to prevent credential leakage over HTTP (#29)
Bug Fixes
- Fix incorrect condition when printing JSON report path to console (#30)
- Default currency to USD when cloud cost API returns empty rows (#30)
- Remove unreachable duplicate except block in AWS cost inventory builder (#30)
- Re-raise exceptions in Azure inventory builders so failures propagate to the caller (#32)
Python 3.14 Compatibility
- Replace deprecated datetime.utcnow() with datetime.now(timezone.utc) (#28)
- Modernize typing imports: replace typing.List, Dict, Tuple, Set, Optional, Callable with built-in equivalents (#28)
Refactoring
- Update requirements.txt dependencies (#20)
- Normalize codebase for Ruff and Black formatting (#23)
- Refactor report data transform pipeline into dedicated modules (#26)
- Refactor HTML report template with new desktop-focused layout (#27)
- Decompose generate_pdf_report (630 lines) into individually testable section functions (#31)
Testing & CI
v1.0.5
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.4
Enhancements
- Integration with exitcloud.io (#14 )
This version includes significant refactoring, code improvements, and enhanced error handling to prepare cloudexit for advanced one-time cloud exit assessments with ExitCloud.io integration.
v1.0.4
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.
Changes since v1.0.3
Enhancements
- Update Alternative Technology dataset (#9)
The EscapeCloud - Master Data Management component is responsible for continuously adding new available technologies to the dataset, updating details for existing technologies, and matching their offerings with cloud service provider services. The EscapeCloud Community Edition fetches the latest datasets from remote storage (Hetzner), making it easier and smoother for our open-source users to access the latest data.
v1.0.3
🚨 This is a Release Candidate: a near-final version intended for testing and feedback.
If you encounter any bugs or have suggestions, please report them here.
Your feedback is crucial to ensuring a stable final release.