Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Look at `idle_bastion` if you want a complete existing example:

- `src/cloudcost/sources/azure/idle_bastion.py`
- `policies/idle_bastion.sql`
- `cloudcost.idle-bastion-real.yml`
- `examples/cloudcost.idle-bastion-real.yml`
- the `import cloudcost.sources.azure.idle_bastion` line in `runner.py`

## Minimal worked example
Expand Down Expand Up @@ -99,7 +99,7 @@ The pipeline load table name (`fact_idle_nat_gateways` above) must match what th
### 3. Live pipeline config

```yaml
# cloudcost.idle-nat-gateways-real.yml
# examples/cloudcost.idle-nat-gateways-real.yml
version: "1"

pipeline:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ transforms:
UsageDateTime: usage_date
```

This was verified end-to-end against a real Azure Cost Management export (215 real cost line items, `cloudcost sync` + `cloudcost policy run` both succeeding and producing real findings) — see `cloudcost.azure-real.yml` for the full working example. AWS/OCI/Alibaba each need their own `column_map` matched to their real export schema; none of those have been verified against live data yet.
This was verified end-to-end against a real Azure Cost Management export (215 real cost line items, `cloudcost sync` + `cloudcost policy run` both succeeding and producing real findings) — see `examples/cloudcost.azure-real.yml` for the full working example. AWS/OCI/Alibaba each need their own `column_map` matched to their real export schema; none of those have been verified against live data yet.

**Independently re-verified from a completely fresh clone** (new `git clone`, new `uv venv`, new `uv pip install -e .`, no leftover state) against the same live export, confirming the fix isn't an artifact of the environment it was written in:

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/cloudcost/transforms/normalize.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def transform(self, table: pa.Table, context: Any = None) -> pa.Table:
# of guessing at schemas, the pipeline config now declares the
# mapping explicitly via this transform's own `config` block
# (TransformConfig.config already existed in the schema; it was
# just never read). See cloudcost.azure-real.yml for a real
# just never read). See examples/cloudcost.azure-real.yml for a real
# example verified against a live Azure Cost Management export.
import datetime

Expand Down
Loading