@go-to-k/cdkd 0.148.0 → 0.150.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 (4) hide show
  1. package/README.md +31 -10
  2. package/dist/cli.js +19274 -18516
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -316,7 +316,9 @@ cdkd state resources MyStack --json # full JSON array
316
316
 
317
317
  # Show full state record for a stack (metadata, outputs, all resources incl. properties)
318
318
  cdkd state show MyStack
319
- cdkd state show MyStack --json # raw {state, lock} JSON
319
+ cdkd state show MyStack --json # raw {state, lock} JSON
320
+ cdkd state show MyParent --show-nested # recursively show every nested-stack child (#555 A4)
321
+ cdkd state show MyParent --show-nested --json # tree as nested {state, lock, children: [...]} JSON
320
322
 
321
323
  # Orphan one or more RESOURCES from cdkd's state (does NOT delete AWS resources).
322
324
  # Per-resource, mirrors aws-cdk-cli's `cdk orphan --unstable=orphan`.
@@ -583,16 +585,31 @@ The Custom Resource Lambda must be idempotent AND must POST to
583
585
  `event.ResponseURL` per the cfn-response protocol. Without the flag,
584
586
  the command refuses to proceed and the user is expected to destroy
585
587
  the offending resources (or accept abandoning them) first. Nested
586
- `AWS::CloudFormation::Stack` rows have partial support as of
587
- [#464](https://github.com/go-to-k/cdkd/issues/464) PR B1: `cdkd export`
588
+ `AWS::CloudFormation::Stack` rows are fully supported as of
589
+ [#464](https://github.com/go-to-k/cdkd/issues/464) PR B2: `cdkd export`
588
590
  recursively walks the cdkd state tree, validates every parent → child
589
- link, and surfaces the full leaf-first migration scope to the user;
590
- the CFn-side `--include-nested-stacks` IMPORT changeset submission
591
- itself is deferred to PR B2, so the command warns on `--dry-run` /
592
- hard-errors on real run with a clear pointer + workaround (keep on
593
- cdkd, or destroy children leaf-first via `cdkd state destroy <child>`
594
- and re-export the flattened parent). Fresh `cdkd deploy` of nested
595
- stacks works via [#459](https://github.com/go-to-k/cdkd/issues/459).
591
+ link, and submits **IMPORT changesets per cdkd-managed stack** in
592
+ leaf-first order — leaf stacks via one CREATE-via-IMPORT changeset, non-leaf
593
+ parents via two changesets (Phase 1A CREATE-via-IMPORT for the parent's
594
+ leaf resources only, then Phase 1B UPDATE-via-IMPORT for the just-imported
595
+ child adoption per AWS's
596
+ ["Nest an existing stack"](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-nested-stacks.html)
597
+ pattern with `DeletionPolicy: Retain` plus
598
+ `ResourceIdentifier: { StackId: <child arn> }` plus AWS-validated
599
+ child-Tag forwarding). Between phases cdkd flips each
600
+ stack's status from `IMPORT_COMPLETE` to `UPDATE_COMPLETE` via a no-op
601
+ tag-only `UpdateStack` (AWS rejects `IMPORT_COMPLETE` as a non-importable
602
+ status for nested adoption). The original "one atomic
603
+ `--include-nested-stacks` IMPORT changeset" design was found infeasible
604
+ by the 2026-05-24 AWS spike — AWS rejects that flag combination with
605
+ `ValidationError: IncludeNestedStacks is not supported for changeSet type: IMPORT`;
606
+ see [docs/design/464-nested-stacks-export-import.md](docs/design/464-nested-stacks-export-import.md)
607
+ §4.0 / §4.3 for the per-stack-loop algorithm. Each child cdkd stack
608
+ (`<parent>~<childLogicalId>`) becomes its own CFn stack named
609
+ `<parent>-<childLogicalId>` by default (`~` is illegal in CFn stack
610
+ names); override per child with `--cfn-child-stack-name '<cdkd>=<cfn>'`
611
+ (repeatable). Fresh `cdkd deploy` of nested stacks works via
612
+ [#459](https://github.com/go-to-k/cdkd/issues/459).
596
613
 
597
614
  ```bash
598
615
  cdkd export MyStack # confirmation prompt; CFn stack name = cdkd stack name
@@ -600,6 +617,10 @@ cdkd export MyStack --cfn-stack-name MyStack-CFn
600
617
  cdkd export MyStack --dry-run # print the import plan, do not call CFn
601
618
  cdkd export MyStack --template path.json # skip synth, use a pre-rendered template (JSON or YAML — format auto-detected)
602
619
  cdkd export MyStack --include-non-importable # 2-phase: IMPORT importable + CFn-CREATE Custom Resources
620
+
621
+ # Nested-stack tree (parent + children). Default child CFn names: '<parent>-<childLogicalId>'.
622
+ cdkd export MyApp # leaf-first per-stack IMPORT loop
623
+ cdkd export MyApp --cfn-child-stack-name 'MyApp~Database=my-app-db' # per-child name override
603
624
  ```
604
625
 
605
626
  Accepts JSON and YAML templates. YAML round-trips through a CFn-aware codec