cloudburn 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +24 -0
  2. package/dist/cli.js +5 -1
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -99,6 +99,12 @@ cloudburn discover
99
99
  cloudburn discover --region eu-central-1
100
100
  cloudburn discover --config .cloudburn.yml --enabled-rules CLDBRN-AWS-EBS-1
101
101
  cloudburn discover --enabled-rules CLDBRN-AWS-LAMBDA-4
102
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-1
103
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-2
104
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-3
105
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-4
106
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-5
107
+ cloudburn discover --enabled-rules CLDBRN-AWS-COSTOPTIMIZATIONHUB-6
102
108
  cloudburn discover --enabled-rules CLDBRN-AWS-TAGGING-1
103
109
  cloudburn discover --service ec2,s3
104
110
  cloudburn discover --fail-on high
@@ -112,6 +118,24 @@ The discovery config equivalent is `discovery.fail-on`.
112
118
  The CLI targets one region per run. Multi-region discovery remains available through the SDK and still needs an AWS Resource Explorer aggregator plus an unfiltered default view in the aggregator region.
113
119
  `CLDBRN-AWS-TAGGING-1` is opt-in and requires an accessible aggregator; a local-only setup cannot run account-wide tagging discovery.
114
120
  `CLDBRN-AWS-LAMBDA-4` is opt-in and requires AWS Compute Optimizer enrollment.
121
+ `CLDBRN-AWS-COSTOPTIMIZATIONHUB-1` through `CLDBRN-AWS-COSTOPTIMIZATIONHUB-6` are opt-in and require AWS Cost Optimization Hub enrollment. CloudBurn checks enrollment but never changes it. These rules use `cost-optimization-hub:ListEnrollmentStatuses`, `cost-optimization-hub:ListRecommendations`, and `cost-optimization-hub:GetRecommendation`, with `Resource: "*"`, plus `sts:GetCallerIdentity` for account scoping.
122
+
123
+ Rule 3 reports idle-capacity Stop, Delete, and ScaleIn recommendations. It never executes them. Missing enrollment,
124
+ denied access, and malformed evidence produce diagnostics. Review the exact action and rollback capability before acting.
125
+ Table output includes an Action column for these findings. Regional discovery limits recommendations to the selected Region.
126
+
127
+ `CLDBRN-AWS-COSTOPTIMIZATIONHUB-5` reviews AWS `Upgrade` recommendations for standalone EC2 instances, Auto Scaling groups, EBS volumes, RDS DB instances, and RDS DB instance storage. It preserves both configurations for generation review; rightsizing and Graviton migration use separate AWS actions. Unenrolled accounts, access denial, and incomplete required details produce unavailable diagnostics.
128
+
129
+ Rule 6 reports Graviton migration candidates for standalone EC2 instances, Auto Scaling groups, and RDS DB instances.
130
+ Review workload compatibility and rollback requirements before migrating. Unclassified workloads are not confirmed
131
+ compatible; unavailable evidence produces diagnostics. See the [SDK evidence contract](../sdk/README.md) for details.
132
+ Reservation findings include their AWS resource namespace in JSON and in the default table output.
133
+ `CLDBRN-AWS-COSTOPTIMIZATIONHUB-4` is also opt-in and uses the same Hub IAM actions for rightsizing recommendations
134
+ across EC2 instances and Auto Scaling groups, EBS, Lambda, ECS, RDS instances and storage, and Aurora cluster storage.
135
+ It reads recommendations across Regions for the current account through `us-east-1`. Missing enrollment, denied
136
+ access, or incomplete configurations produce diagnostics. The SDK exposes both typed configurations with
137
+ `includeEvaluationResources: true`; the CLI prints finding identities and diagnostics.
138
+ `CLDBRN-AWS-SAGEMAKER-3` uses Cost Explorer coverage data and remains available when Cost Optimization Hub is unavailable.
115
139
  Use `--debug` to print SDK and provider execution tracing to `stderr` without changing the normal `stdout` format.
116
140
 
117
141
  ## Shell Completion
package/dist/cli.js CHANGED
@@ -551,7 +551,9 @@ var scanColumns = [
551
551
  { key: "severity", header: "Severity" },
552
552
  { key: "source", header: "Source" },
553
553
  { key: "service", header: "Service" },
554
+ { key: "resourceType", header: "ResourceType" },
554
555
  { key: "resourceId", header: "ResourceId" },
556
+ { key: "actionType", header: "Action" },
555
557
  { key: "accountId", header: "AccountId" },
556
558
  { key: "region", header: "Region" },
557
559
  { key: "path", header: "Path" },
@@ -689,11 +691,13 @@ ${renderAsciiTable(diagnosticRows, diagnosticColumns)}`
689
691
  };
690
692
  var projectFindingRows = (result) => flattenScanResult(result).map(({ finding, message, provider, ruleId, service, severity, source }) => ({
691
693
  accountId: finding.accountId ?? "",
694
+ actionType: finding.actionType ?? "",
692
695
  message,
693
696
  path: finding.location?.path ?? "",
694
697
  provider,
695
698
  region: finding.region ?? "",
696
699
  resourceId: finding.resourceId,
700
+ resourceType: finding.resourceType ?? "",
697
701
  ruleId,
698
702
  service,
699
703
  severity,
@@ -1552,7 +1556,7 @@ var isCliEntrypoint = (moduleUrl, argvEntry = process.argv[1]) => {
1552
1556
  };
1553
1557
  var createProgram = () => {
1554
1558
  const program = createCliCommand();
1555
- program.name("cloudburn").usage("[command]").description("Know what you spend. Fix what you waste.").version("0.15.0").option("--debug", "Write execution trace messages to stderr").option("--format <format>", OUTPUT_FORMAT_OPTION_DESCRIPTION, parseOutputFormat);
1559
+ program.name("cloudburn").usage("[command]").description("Know what you spend. Fix what you waste.").version("0.16.0").option("--debug", "Write execution trace messages to stderr").option("--format <format>", OUTPUT_FORMAT_OPTION_DESCRIPTION, parseOutputFormat);
1556
1560
  configureCliHelp(program);
1557
1561
  program.exitOverride();
1558
1562
  registerCompletionCommand(program);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudburn",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Cloudburn CLI for cloud cost optimization",
5
5
  "homepage": "https://cloudburn.io/docs",
6
6
  "bugs": {
@@ -20,7 +20,7 @@
20
20
  ],
21
21
  "dependencies": {
22
22
  "commander": "^13.1.0",
23
- "@cloudburn/sdk": "0.31.0"
23
+ "@cloudburn/sdk": "0.32.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@biomejs/biome": "^2.5.3",