IMPACT is an experimental CLI for assessing the environmental impact of Scaleway infrastructure from two sources: Terraform plans (forecast) and Scaleway APIs (measured data).
It reports monthly impact focused on carbon emissions (kgCO2e) and water consumption (m3).
Estimated monthly impact badge (from Terraform plan). Setup and generation details: docs/badges.md.
⚠️ Proof-of-concept tool under development
This project is unofficial and not affiliated with or endorsed by Scaleway.
impact uses Scaleway Environmental Footprint APIs that are currently in alpha, and plan results rely on Terraform-to-SKU mapping logic and catalog metadata.
Do not use this output as a compliance source of truth.
impact plan- estimate impact from Terraform plansimpact actual- query measured footprint from Scaleway APIsimpact doctor- check environment/auth and API reachabilityimpact completion- generate shell completions
Use help at any level:
impact --help
impact plan --help
impact actual --help
impact doctor --help- review infrastructure changes before
terraform apply - compare estimated (
plan) vs measured (actual) impact - export table or JSON output for reviews and reporting
Build locally:
go build -o impact ./cmd/impactInstall from GitHub:
go install github.com/alesr/impact/cmd/impact@latest- Go
1.25+ - Terraform
1.6+for plan workflows - Scaleway credentials for API-backed commands
| Variable | Used by | Notes |
|---|---|---|
SCW_ACCESS_KEY |
impact actual, impact doctor, Terraform provider |
API access key |
SCW_SECRET_KEY |
impact actual, impact doctor, Terraform provider |
API secret key/token |
SCW_ORGANIZATION_ID |
impact actual, impact doctor |
Organization UUID |
IMPACT_SCW_API_BASE_URL |
API-backed commands | Optional base URL override (default https://api.scaleway.com) |
Before running, set real values for db_password and redis_password in examples/terraform.tfvars.example.
terraform -chdir=examples init
terraform -chdir=examples plan -var-file=terraform.tfvars.example -out=tfplan
terraform -chdir=examples show -json tfplan > examples/tfplan.json
impact plan --file examples/tfplan.json --format tableTUI mode:
impact plan --file examples/tfplan.json --tuiDirectly from Terraform (run inside your Terraform directory):
impact plan --from-terraform --format tableexport SCW_SECRET_KEY="..."
export SCW_ORGANIZATION_ID="..."
export SCW_ACCESS_KEY="SCWXXXXXXXXXXXXXXXXX"
impact actual --start 2026-01-01 --end 2026-01-31 --format tableOptional filters:
--project--region--zone--service-category--product-category
Accepted values:
- service categories:
baremetal,compute,storage - product categories:
applesilicon,blockstorage,dedibox,elasticmetal,instances,objectstorage
Filter value normalization is supported, so separators like -, _, and spaces are accepted (for example apple-silicon, apple_silicon, apple silicon).
impact doctordoctor checks:
- config/env visibility
- catalog endpoint reachability
- footprint query reachability (when auth and org are present)
impact plan estimates monthly deltas with action-aware behavior:
create: adds estimated monthly impactdelete: subtracts estimated monthly impactupdate: estimates delta as before vs after (old config subtracted, new config added)replace(delete+create): modeled as delete + create transitions
Notes:
N/Ameans footprint data is missing for a mapped product, not zero impact.- totals can be partial when one or more rows have unknown footprint values.
Files:
examples/showcase.tfexamples/terraform.tfvars.example
Showcase includes:
- instance server replicas and block volume
- load balancer
- rdb and redis
- intentionally unsupported resources (
scaleway_instance_ip,scaleway_vpc_private_network) to demonstrate diagnostics output
Example run from repo root:
terraform -chdir=examples init
terraform -chdir=examples plan -var-file=terraform.tfvars.example -out=tfplan
terraform -chdir=examples show -json tfplan > examples/tfplan.json
impact plan --file examples/tfplan.json --format table
# optional TUI view
impact plan --file examples/tfplan.json --tuiRun tests:
go test ./...For local development without installing the binary:
go run ./cmd/impact --help| Topic | Link |
|---|---|
| Environmental Footprint docs | https://www.scaleway.com/en/docs/environmental-footprint/ |
| Environmental Footprint integration guide | https://www.scaleway.com/en/docs/environmental-footprint/additional-content/environmental-footprint-integration/ |
| Environmental Footprint User API | https://www.scaleway.com/en/developers/api/environmental-footprint/user-api/ |
| Product Catalog Public Catalog API | https://www.scaleway.com/en/developers/api/product-catalog/public-catalog-api/ |
| Scaleway Go SDK | https://github.com/scaleway/scaleway-sdk-go |

