Configuration

Workspace layout, settings, suppressions, and report metadata.

CloudOpt keeps snapshots, analysis runs, and reports in a workspace directory. Pass --workspace-dir on each command or export COA_WORKSPACE_DIR once before the session (default: ~/.cloudopt).

Workspace layout

After cloudopt init:

~/.cloudopt/
├── config/
│   ├── config.yaml          # main settings
│   ├── suppressions.yaml    # optional: hide known findings
│   └── report.yaml          # optional: customer/project labels
├── data/                    # snapshots and analysis results
├── reports/                 # generated HTML and JSON
└── tmp/

Settings precedence

Highest priority wins:

  1. Command flags (--workspace-dir, --log-level, etc.)
  2. Environment variables (COA_*)
  3. config/config.yaml in the workspace

Environment variables

Variable Purpose
COA_WORKSPACE_DIR Workspace root directory
COA_LOG_LEVEL debug, info, warn, or error
COA_LOG_FORMAT text or json

Credentials

AWS: env vars, ~/.aws/credentials, or an instance/container IAM role via the standard SDK chain.

GCP: Application Default Credentials (gcloud auth application-default login, or workload identity in CI). Pass --impersonate-service-account on collect commands for short-lived cross-project access without storing keys.

Do not put secrets in workspace config files or commit them to git.

Suppressing findings

Add accepted findings to config/suppressions.yaml:

suppressions:
  - fingerprint: "<finding fingerprint from a previous report>"
    reason: "Decommission scheduled for Q3"
    expires_at: "2026-12-31T23:59:59Z"

Or suppress by rule and resource:

suppressions:
  - rule_id: compute.stopped_instance_storage_cost
    resource_id: i-0abc123def456
    reason: "Reserved for DR testing"

Expired suppressions drop out automatically. Suppressed findings still show in the report appendix but not in totals.

Report metadata

Optional config/report.yaml sets header labels:

customer_name: Acme Corp
project_name: Production audit

These labels do not affect analysis or findings.