@quadnix/octo 0.1.0 → 0.2.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 (221) hide show
  1. package/README.md +108 -21
  2. package/dist/app.type.d.ts +141 -22
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/model.decorator.d.ts +3 -5
  5. package/dist/decorators/model.decorator.js +1 -6
  6. package/dist/decorators/model.decorator.js.map +1 -1
  7. package/dist/decorators/on-event.decorator.d.ts +2 -2
  8. package/dist/decorators/on-event.decorator.js.map +1 -1
  9. package/dist/decorators/resource.decorator.d.ts +50 -1
  10. package/dist/decorators/resource.decorator.js +38 -1
  11. package/dist/decorators/resource.decorator.js.map +1 -1
  12. package/dist/errors/schema.error.d.ts +8 -1
  13. package/dist/errors/schema.error.js +5 -1
  14. package/dist/errors/schema.error.js.map +1 -1
  15. package/dist/errors/terraform.error.d.ts +4 -3
  16. package/dist/errors/terraform.error.js +4 -3
  17. package/dist/errors/terraform.error.js.map +1 -1
  18. package/dist/errors/transaction.error.d.ts +32 -2
  19. package/dist/errors/transaction.error.js +22 -0
  20. package/dist/errors/transaction.error.js.map +1 -1
  21. package/dist/events/action.event.d.ts +8 -2
  22. package/dist/events/action.event.js +2 -2
  23. package/dist/events/action.event.js.map +1 -1
  24. package/dist/events/command.event.d.ts +43 -0
  25. package/dist/events/command.event.js +33 -0
  26. package/dist/events/command.event.js.map +1 -0
  27. package/dist/events/event.model.d.ts +7 -5
  28. package/dist/events/event.model.js +5 -3
  29. package/dist/events/event.model.js.map +1 -1
  30. package/dist/events/hook/commit.hook.event.d.ts +1 -1
  31. package/dist/events/hook/commit.hook.event.js.map +1 -1
  32. package/dist/events/hook/hook.event.d.ts +1 -1
  33. package/dist/events/hook/hook.event.js.map +1 -1
  34. package/dist/events/hook/model.hook.event.d.ts +1 -1
  35. package/dist/events/hook/model.hook.event.js.map +1 -1
  36. package/dist/events/hook/resource.hook.event.d.ts +1 -1
  37. package/dist/events/hook/resource.hook.event.js.map +1 -1
  38. package/dist/events/index.d.ts +2 -0
  39. package/dist/events/index.js +2 -0
  40. package/dist/events/index.js.map +1 -1
  41. package/dist/events/mode-result.event.d.ts +1 -1
  42. package/dist/events/mode-result.event.js.map +1 -1
  43. package/dist/events/mode.event.d.ts +8 -4
  44. package/dist/events/mode.event.js.map +1 -1
  45. package/dist/events/module.event.d.ts +7 -3
  46. package/dist/events/module.event.js +3 -2
  47. package/dist/events/module.event.js.map +1 -1
  48. package/dist/events/registration.event.d.ts +1 -1
  49. package/dist/events/registration.event.js.map +1 -1
  50. package/dist/events/serialization.event.d.ts +1 -1
  51. package/dist/events/serialization.event.js.map +1 -1
  52. package/dist/events/state.event.d.ts +102 -0
  53. package/dist/events/state.event.js +69 -0
  54. package/dist/events/state.event.js.map +1 -0
  55. package/dist/events/terraform.event.d.ts +37 -1
  56. package/dist/events/terraform.event.js +24 -0
  57. package/dist/events/terraform.event.js.map +1 -1
  58. package/dist/events/transaction.event.d.ts +3 -3
  59. package/dist/events/transaction.event.js +1 -1
  60. package/dist/events/transaction.event.js.map +1 -1
  61. package/dist/functions/container/container.js +1 -1
  62. package/dist/functions/container/container.js.map +1 -1
  63. package/dist/functions/container/test-container.js +2 -2
  64. package/dist/functions/container/test-container.js.map +1 -1
  65. package/dist/functions/dependency/dependency.d.ts +9 -22
  66. package/dist/functions/dependency/dependency.js +5 -1
  67. package/dist/functions/dependency/dependency.js.map +1 -1
  68. package/dist/functions/diff/diff.d.ts +14 -7
  69. package/dist/functions/diff/diff.js.map +1 -1
  70. package/dist/functions/node/node-action.abstract.d.ts +8 -10
  71. package/dist/functions/node/node-action.abstract.js +10 -16
  72. package/dist/functions/node/node-action.abstract.js.map +1 -1
  73. package/dist/functions/node/node.abstract.js +21 -10
  74. package/dist/functions/node/node.abstract.js.map +1 -1
  75. package/dist/functions/node/node.interface.d.ts +2 -1
  76. package/dist/functions/schema/schema.js +1 -1
  77. package/dist/functions/schema/schema.js.map +1 -1
  78. package/dist/index.d.ts +8 -6
  79. package/dist/index.js +6 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/index.type.d.ts +5 -0
  82. package/dist/index.type.js +2 -0
  83. package/dist/index.type.js.map +1 -0
  84. package/dist/main.d.ts +4 -3
  85. package/dist/main.js +27 -11
  86. package/dist/main.js.map +1 -1
  87. package/dist/models/account/account.model.d.ts +6 -0
  88. package/dist/models/account/account.model.js +16 -0
  89. package/dist/models/account/account.model.js.map +1 -1
  90. package/dist/models/app/app.model.d.ts +0 -10
  91. package/dist/models/app/app.model.js +0 -30
  92. package/dist/models/app/app.model.js.map +1 -1
  93. package/dist/models/deployment/deployment.schema.d.ts +4 -0
  94. package/dist/models/deployment/deployment.schema.js +4 -0
  95. package/dist/models/deployment/deployment.schema.js.map +1 -1
  96. package/dist/models/environment/environment.model.d.ts +2 -2
  97. package/dist/models/environment/environment.model.js +2 -2
  98. package/dist/models/execution/execution.model.d.ts +1 -1
  99. package/dist/models/execution/execution.model.js +1 -1
  100. package/dist/models/image/image.model.d.ts +4 -3
  101. package/dist/models/image/image.model.js +7 -6
  102. package/dist/models/image/image.model.js.map +1 -1
  103. package/dist/models/model.abstract.js +1 -1
  104. package/dist/models/model.abstract.js.map +1 -1
  105. package/dist/models/pipeline/pipeline.model.d.ts +1 -1
  106. package/dist/models/pipeline/pipeline.model.js +1 -1
  107. package/dist/models/server/server.model.d.ts +2 -2
  108. package/dist/models/server/server.model.js +2 -2
  109. package/dist/models/service/service.model.d.ts +28 -11
  110. package/dist/models/service/service.model.js +56 -16
  111. package/dist/models/service/service.model.js.map +1 -1
  112. package/dist/models/service/service.schema.d.ts +46 -2
  113. package/dist/models/service/service.schema.js +54 -2
  114. package/dist/models/service/service.schema.js.map +1 -1
  115. package/dist/modes/commit.mode.d.ts +2 -2
  116. package/dist/modes/commit.mode.js +2 -2
  117. package/dist/modes/generate.mode.d.ts +2 -1
  118. package/dist/modes/generate.mode.js +3 -2
  119. package/dist/modes/generate.mode.js.map +1 -1
  120. package/dist/modes/run-action.mode.d.ts +1 -1
  121. package/dist/modes/run-action.mode.js +1 -1
  122. package/dist/modes/validate.mode.d.ts +24 -0
  123. package/dist/modes/validate.mode.js +89 -11
  124. package/dist/modes/validate.mode.js.map +1 -1
  125. package/dist/modules/module.container.d.ts +7 -1
  126. package/dist/modules/module.container.js +41 -5
  127. package/dist/modules/module.container.js.map +1 -1
  128. package/dist/modules/test-module.container.js +35 -83
  129. package/dist/modules/test-module.container.js.map +1 -1
  130. package/dist/overlays/overlay.abstract.js +1 -1
  131. package/dist/overlays/overlay.abstract.js.map +1 -1
  132. package/dist/resources/resource-action.interface.d.ts +4 -2
  133. package/dist/resources/resource.abstract.d.ts +50 -8
  134. package/dist/resources/resource.abstract.js +63 -32
  135. package/dist/resources/resource.abstract.js.map +1 -1
  136. package/dist/resources/resource.interface.d.ts +0 -2
  137. package/dist/resources/resource.schema.d.ts +11 -1
  138. package/dist/resources/resource.schema.js +11 -1
  139. package/dist/resources/resource.schema.js.map +1 -1
  140. package/dist/services/event/event.service.d.ts +2 -2
  141. package/dist/services/event/event.service.js.map +1 -1
  142. package/dist/services/input/input.service.d.ts +30 -2
  143. package/dist/services/input/input.service.js +71 -4
  144. package/dist/services/input/input.service.js.map +1 -1
  145. package/dist/services/serialization/model/model-serialization.service.d.ts +4 -6
  146. package/dist/services/serialization/model/model-serialization.service.js +20 -17
  147. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  148. package/dist/services/serialization/resource/resource-serialization.service.d.ts +7 -6
  149. package/dist/services/serialization/resource/resource-serialization.service.js +25 -12
  150. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  151. package/dist/services/state-management/local.state-provider.d.ts +25 -9
  152. package/dist/services/state-management/local.state-provider.js +127 -21
  153. package/dist/services/state-management/local.state-provider.js.map +1 -1
  154. package/dist/services/state-management/remote.state-provider.d.ts +216 -0
  155. package/dist/services/state-management/remote.state-provider.js +645 -0
  156. package/dist/services/state-management/remote.state-provider.js.map +1 -0
  157. package/dist/services/state-management/state-management.service.d.ts +83 -40
  158. package/dist/services/state-management/state-management.service.js +130 -26
  159. package/dist/services/state-management/state-management.service.js.map +1 -1
  160. package/dist/services/state-management/state-provider.interface.d.ts +50 -9
  161. package/dist/services/state-management/state-provider.interface.js +14 -1
  162. package/dist/services/state-management/state-provider.interface.js.map +1 -1
  163. package/dist/services/state-management/terraform-state.service.d.ts +32 -9
  164. package/dist/services/state-management/terraform-state.service.js +64 -21
  165. package/dist/services/state-management/terraform-state.service.js.map +1 -1
  166. package/dist/services/state-management/test.state-provider.d.ts +11 -10
  167. package/dist/services/state-management/test.state-provider.js +35 -14
  168. package/dist/services/state-management/test.state-provider.js.map +1 -1
  169. package/dist/services/terraform/terraform.service.d.ts +57 -3
  170. package/dist/services/terraform/terraform.service.js +95 -8
  171. package/dist/services/terraform/terraform.service.js.map +1 -1
  172. package/dist/services/terraform/terraform.type.js +1 -1
  173. package/dist/services/terraform/terraform.type.js.map +1 -1
  174. package/dist/services/transaction/transaction.service.d.ts +29 -5
  175. package/dist/services/transaction/transaction.service.js +198 -34
  176. package/dist/services/transaction/transaction.service.js.map +1 -1
  177. package/dist/services/validation/validation.service.d.ts +2 -2
  178. package/dist/{functions → utilities}/diff/diff.utility.d.ts +2 -1
  179. package/dist/{functions → utilities}/diff/diff.utility.js +4 -3
  180. package/dist/utilities/diff/diff.utility.js.map +1 -0
  181. package/dist/utilities/file/file.utility.d.ts +6 -7
  182. package/dist/utilities/file/file.utility.js +13 -68
  183. package/dist/utilities/file/file.utility.js.map +1 -1
  184. package/dist/utilities/hcl/hcl.utility.d.ts +83 -16
  185. package/dist/utilities/hcl/hcl.utility.js +200 -27
  186. package/dist/utilities/hcl/hcl.utility.js.map +1 -1
  187. package/dist/utilities/http/http.utility.d.ts +57 -0
  188. package/dist/utilities/http/http.utility.js +98 -0
  189. package/dist/utilities/http/http.utility.js.map +1 -0
  190. package/dist/utilities/string/string.utility.d.ts +23 -3
  191. package/dist/utilities/string/string.utility.js +29 -3
  192. package/dist/utilities/string/string.utility.js.map +1 -1
  193. package/dist/utilities/terraform/terraform.utility.d.ts +70 -21
  194. package/dist/utilities/terraform/terraform.utility.js +255 -66
  195. package/dist/utilities/terraform/terraform.utility.js.map +1 -1
  196. package/dist/utilities/test-helpers/test-classes.d.ts +19 -0
  197. package/dist/utilities/test-helpers/test-classes.js +22 -0
  198. package/dist/utilities/test-helpers/test-classes.js.map +1 -1
  199. package/dist/utilities/test-helpers/test-models.d.ts +8 -1
  200. package/dist/utilities/test-helpers/test-models.js +25 -12
  201. package/dist/utilities/test-helpers/test-models.js.map +1 -1
  202. package/dist/utilities/test-helpers/test-modes.d.ts +1 -1
  203. package/dist/utilities/test-helpers/test-modes.js +36 -13
  204. package/dist/utilities/test-helpers/test-modes.js.map +1 -1
  205. package/dist/utilities/test-helpers/test-modules.d.ts +6 -0
  206. package/dist/utilities/test-helpers/test-modules.js +6 -0
  207. package/dist/utilities/test-helpers/test-modules.js.map +1 -1
  208. package/dist/utilities/test-helpers/test-overlays.d.ts +3 -1
  209. package/dist/utilities/test-helpers/test-overlays.js +8 -2
  210. package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
  211. package/dist/utilities/test-helpers/test-resources.d.ts +4 -2
  212. package/dist/utilities/test-helpers/test-resources.js +22 -20
  213. package/dist/utilities/test-helpers/test-resources.js.map +1 -1
  214. package/package.json +7 -2
  215. package/dist/functions/diff/diff.utility.js.map +0 -1
  216. package/dist/services/state-management/file-app-lock.utility.d.ts +0 -43
  217. package/dist/services/state-management/file-app-lock.utility.js +0 -124
  218. package/dist/services/state-management/file-app-lock.utility.js.map +0 -1
  219. package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -71
  220. package/dist/services/state-management/local-encryption.state-provider.js +0 -116
  221. package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
@@ -14,7 +14,8 @@ import type { ModelTransactionResult } from './apply-transaction.js';
14
14
  * `models.json` ∪ `resources.json`). A recorded folder the sweep does not produce was deleted from
15
15
  * intent, and is written **emptied** — no resources, but the recorded provider blocks intact — so
16
16
  * terragrunt still discovers it and a later apply destroys whatever its state holds (and cannot
17
- * redeploy it). Folders are emptied, never removed.
17
+ * redeploy it). Folders are emptied, never removed. A folder the sweep did produce keeps the
18
+ * recorded provider blocks its resources no longer use, for the same reason.
18
19
  *
19
20
  * Writes are gentle: each folder is overwritten in place, and `outputDir` is not wiped, so
20
21
  * `terraform.tfstate`, `.terragrunt-cache`, and any folder octo does not recognize (a user's own, or
@@ -15,7 +15,8 @@ import { TerraformService } from '../services/terraform/terraform.service.js';
15
15
  * `models.json` ∪ `resources.json`). A recorded folder the sweep does not produce was deleted from
16
16
  * intent, and is written **emptied** — no resources, but the recorded provider blocks intact — so
17
17
  * terragrunt still discovers it and a later apply destroys whatever its state holds (and cannot
18
- * redeploy it). Folders are emptied, never removed.
18
+ * redeploy it). Folders are emptied, never removed. A folder the sweep did produce keeps the
19
+ * recorded provider blocks its resources no longer use, for the same reason.
19
20
  *
20
21
  * Writes are gentle: each folder is overwritten in place, and `outputDir` is not wiped, so
21
22
  * `terraform.tfstate`, `.terragrunt-cache`, and any folder octo does not recognize (a user's own, or
@@ -26,7 +27,7 @@ import { TerraformService } from '../services/terraform/terraform.service.js';
26
27
  export async function generate({ outputDir, previousFolders = [], transaction, }) {
27
28
  const terraformService = await Container.getInstance().get(TerraformService);
28
29
  const { resourceDiffs } = transaction;
29
- const moduleFiles = terraformService.renderAllModules();
30
+ const moduleFiles = terraformService.renderAllModules(previousFolders);
30
31
  // Write rule: a recorded folder the sweep did not produce was deleted from intent — add it to
31
32
  // the write set emptied, with the providers recorded by the last run.
32
33
  for (const folder of previousFolders) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.mode.js","sourceRoot":"","sources":["../../src/modes/generate.mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,SAAS,EACT,eAAe,GAAG,EAAE,EACpB,WAAW,GAKZ;IACC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE7E,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAEtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAExD,8FAA8F;IAC9F,sEAAsE;IACtE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,sDAAsD;IACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"generate.mode.js","sourceRoot":"","sources":["../../src/modes/generate.mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,SAAS,EACT,eAAe,GAAG,EAAE,EACpB,WAAW,GAKZ;IACC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE7E,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAEtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAEvE,8FAA8F;IAC9F,sEAAsE;IACtE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,sDAAsD;IACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -7,7 +7,7 @@ interface RunActionResult {
7
7
  /**
8
8
  * Runs a single resource action, invoked by terraform mid-apply for an external resource.
9
9
  *
10
- * Octo-internal: not a step of the user's generate → validate → apply → commit cycle — terraform
10
+ * Octo-internal: not a step of the user's generate → validate → apply → commit run — terraform
11
11
  * shells back into it from a generated `local-exec` provisioner; users never run it by hand.
12
12
  *
13
13
  * Boots normally, computes the full resource diff, filters to `resourceId` — the diff decides
@@ -37,7 +37,7 @@ function toFlatStringResponse(resourceId, response) {
37
37
  /**
38
38
  * Runs a single resource action, invoked by terraform mid-apply for an external resource.
39
39
  *
40
- * Octo-internal: not a step of the user's generate → validate → apply → commit cycle — terraform
40
+ * Octo-internal: not a step of the user's generate → validate → apply → commit run — terraform
41
41
  * shells back into it from a generated `local-exec` provisioner; users never run it by hand.
42
42
  *
43
43
  * Boots normally, computes the full resource diff, filters to `resourceId` — the diff decides
@@ -30,6 +30,11 @@ export interface ValidateTerraformChange {
30
30
  * Left empty on a plain create or delete, where the address and the action already say everything.
31
31
  */
32
32
  changedFields: ValidateFieldChange[];
33
+ /**
34
+ * How many further arguments moved that `changedFields` does not list. Absent means none were
35
+ * left out: a reader of a replace has to be able to tell a complete field list from a capped one.
36
+ */
37
+ omittedFieldCount?: number;
33
38
  tfActions: string[];
34
39
  }
35
40
  /**
@@ -63,6 +68,16 @@ export interface ValidateReport {
63
68
  * understate what apply will do and overstate drift.
64
69
  */
65
70
  confidence: 'approximate' | 'exact';
71
+ /**
72
+ * Destroys terraform plans of a resource whose class declares that destroying it loses data, whatever
73
+ * the cause.
74
+ */
75
+ dataLoss: {
76
+ address: string;
77
+ message: string;
78
+ moduleId: string;
79
+ resourceId: string;
80
+ }[];
66
81
  /**
67
82
  * Terraform changes nothing in octo explains: the infrastructure moved out from under intent.
68
83
  */
@@ -91,6 +106,15 @@ export interface ValidateReport {
91
106
  resourceId: string;
92
107
  terraformChanges: ValidateTerraformChange[];
93
108
  }[];
109
+ /**
110
+ * Resources rendered into another module folder than the one holding their terraform state. The state
111
+ * moves with them before terraform runs, so terraform updates them in place.
112
+ */
113
+ moves: {
114
+ fromModuleId: string;
115
+ moduleId: string;
116
+ resourceId: string;
117
+ }[];
94
118
  /**
95
119
  * Observations that judge nothing: a folder octo does not track, a delete it cannot correlate.
96
120
  */
@@ -3,6 +3,31 @@ import { aggregateResourceActions, } from '../functions/diff/aggregate-resource-
3
3
  import { DiffAction } from '../functions/diff/diff.js';
4
4
  import { ResourceDataRepository } from '../resources/resource-data.repository.js';
5
5
  import { TerraformService } from '../services/terraform/terraform.service.js';
6
+ /**
7
+ * Renders what terraform said when a folder could not be planned.
8
+ *
9
+ * The captured output is the whole terragrunt run, which is mostly provider initialization and
10
+ * carries the terminal's escape codes. The one line a reader needs is somewhere in the middle of
11
+ * it, so the error lines are lifted to the top and the full log is kept underneath.
12
+ */
13
+ function renderPlanFailure(moduleId, cause) {
14
+ // eslint-disable-next-line no-control-regex
15
+ const plain = cause.replace(/\u001B\[[0-9;]*m/g, '');
16
+ // Duplicates are dropped after normalizing, because terraform prints the same error once on
17
+ // stderr and again in its summary, behind different prefixes.
18
+ const errorLines = [
19
+ ...new Set(plain
20
+ .split('\n')
21
+ .filter((line) => /\bError:/.test(line))
22
+ .map((line) => line.replace(/^.*?\bError:/, 'Error:').trim())),
23
+ ];
24
+ // Only worth lifting when there is noise to lift them out of. A log that is already just the
25
+ // error reads worse repeated than it does left alone.
26
+ const isBuried = errorLines.length > 0 && plain.trim().split('\n').length > errorLines.length;
27
+ return isBuried
28
+ ? `Terraform failed to plan module "${moduleId}":\n${errorLines.join('\n')}\n\nThe full terraform output follows.\n${plain}`
29
+ : `Terraform failed to plan module "${moduleId}":\n${plain}`;
30
+ }
6
31
  const MAX_RENDERED_VALUE_LENGTH = 80;
7
32
  const MAX_REPORTED_FIELDS = 12;
8
33
  /**
@@ -70,16 +95,23 @@ function describeFieldChanges(change) {
70
95
  const isUpdate = actions.has('update');
71
96
  const isReplace = actions.has('create') && actions.has('delete');
72
97
  if (!isUpdate && !isReplace) {
73
- return [];
98
+ return { fields: [], omittedFieldCount: 0 };
74
99
  }
75
100
  const before = (change.before ?? {});
76
101
  const after = (change.after ?? {});
77
102
  const fields = [];
103
+ let omittedFieldCount = 0;
78
104
  for (const key of [...new Set([...Object.keys(before), ...Object.keys(after)])].sort()) {
79
105
  const unknownAfter = isMarked(change.after_unknown, key);
80
106
  if (!unknownAfter && JSON.stringify(before[key]) === JSON.stringify(after[key])) {
81
107
  continue;
82
108
  }
109
+ // Past the cap the field is still counted, so the report can say how many it left out rather
110
+ // than ending on a list the reader cannot tell is complete.
111
+ if (fields.length === MAX_REPORTED_FIELDS) {
112
+ omittedFieldCount++;
113
+ continue;
114
+ }
83
115
  fields.push({
84
116
  field: key,
85
117
  from: isMarked(change.before_sensitive, key) ? '(sensitive)' : renderPlanValue(before[key]),
@@ -89,11 +121,8 @@ function describeFieldChanges(change) {
89
121
  ? '(sensitive)'
90
122
  : renderPlanValue(after[key]),
91
123
  });
92
- if (fields.length === MAX_REPORTED_FIELDS) {
93
- break;
94
- }
95
124
  }
96
- return fields;
125
+ return { fields, omittedFieldCount };
97
126
  }
98
127
  /**
99
128
  * Read-only correlation of `terraform plan` against intent. Never writes state or folders.
@@ -131,9 +160,13 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
131
160
  const report = {
132
161
  attributedChanges: [],
133
162
  confidence: allDiffs.length === 0 ? 'exact' : 'approximate',
163
+ dataLoss: [],
134
164
  drift: [],
135
165
  failures: [],
136
166
  intentChanges: [],
167
+ moves: terraformService
168
+ .getFolderRecords()
169
+ .flatMap(({ moduleId, moves = [] }) => moves.map(({ fromModuleId, resourceId }) => ({ fromModuleId, moduleId, resourceId }))),
137
170
  notes: [],
138
171
  uncertain: [],
139
172
  };
@@ -164,8 +197,12 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
164
197
  if (resourceChange.mode === 'data') {
165
198
  continue;
166
199
  }
200
+ const described = resourceChange.change
201
+ ? describeFieldChanges(resourceChange.change)
202
+ : { fields: [], omittedFieldCount: 0 };
167
203
  changes.set(resourceChange.address, {
168
- changedFields: resourceChange.change ? describeFieldChanges(resourceChange.change) : [],
204
+ changedFields: described.fields,
205
+ omittedFieldCount: described.omittedFieldCount,
169
206
  tfActions: resourceChange.change?.actions ?? [],
170
207
  });
171
208
  }
@@ -174,7 +211,7 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
174
211
  const sweptModuleIds = new Set(terraformService.getModuleIds());
175
212
  const trackedModuleIds = new Set([...sweptModuleIds, ...previousFolders.map((folder) => folder.moduleId)]);
176
213
  const planChangesByModule = new Map();
177
- const NO_PLAN_CHANGE = { changedFields: [], tfActions: [] };
214
+ const NO_PLAN_CHANGE = { changedFields: [], omittedFieldCount: 0, tfActions: [] };
178
215
  // Every module the sweep filled must have a plan. `getModuleIds()` only lists modules that
179
216
  // contributed a resource, so a missing plan means terraform ran on a real folder and failed.
180
217
  for (const moduleId of sweptModuleIds) {
@@ -183,7 +220,7 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
183
220
  const cause = planErrors.get(moduleId);
184
221
  report.failures.push({
185
222
  message: cause
186
- ? `Terraform failed to plan module "${moduleId}":\n${cause}`
223
+ ? renderPlanFailure(moduleId, cause)
187
224
  : `No terraform plan was supplied for module "${moduleId}", so octo cannot report on it.`,
188
225
  moduleId,
189
226
  });
@@ -346,7 +383,14 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
346
383
  const addressActions = mapping.terraformAddresses.map((address) => {
347
384
  claim(mapping.moduleId, address);
348
385
  const planChange = planChanges.get(address) ?? NO_PLAN_CHANGE;
349
- return { address, changedFields: planChange.changedFields, tfActions: planChange.tfActions };
386
+ return {
387
+ address,
388
+ changedFields: planChange.changedFields,
389
+ // Omitted entirely when nothing was left out, so a report payload only carries the key
390
+ // where it has something to say.
391
+ ...(planChange.omittedFieldCount ? { omittedFieldCount: planChange.omittedFieldCount } : {}),
392
+ tfActions: planChange.tfActions,
393
+ };
350
394
  });
351
395
  // A resource can render a variable number of addresses — one rule resource per security group
352
396
  // rule, one object per s3 website file. When it survives but renders fewer, the dropped address
@@ -431,10 +475,15 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
431
475
  }
432
476
  const terraformChanges = [];
433
477
  for (const address of persisted.terraformAddresses) {
434
- const { changedFields, tfActions } = planChanges.get(address) ?? NO_PLAN_CHANGE;
478
+ const { changedFields, omittedFieldCount, tfActions } = planChanges.get(address) ?? NO_PLAN_CHANGE;
435
479
  claim(persisted.moduleId, address);
436
480
  if (!isNoop(tfActions)) {
437
- terraformChanges.push({ address, changedFields, tfActions });
481
+ terraformChanges.push({
482
+ address,
483
+ changedFields,
484
+ ...(omittedFieldCount ? { omittedFieldCount } : {}),
485
+ tfActions,
486
+ });
438
487
  }
439
488
  }
440
489
  // No terraform change means the resource is already gone from the cloud and intent has caught up.
@@ -475,6 +524,35 @@ export async function validate({ externalResourceStateIds = [], persistedMapping
475
524
  }
476
525
  }
477
526
  }
527
+ // Find the addresses of every resource whose destroy loses data, deleted ones by their committed class.
528
+ const dataLossResourceIds = new Map();
529
+ for (const mapping of mappings.filter((m) => m.destroyLosesData)) {
530
+ for (const address of mapping.terraformAddresses) {
531
+ dataLossResourceIds.set(`${mapping.moduleId} ${address}`, mapping.resourceId);
532
+ }
533
+ }
534
+ for (const persisted of persistedMappings.values()) {
535
+ const committed = resourceDataRepository.getActualResourceByContext(persisted.resourceContext);
536
+ if (committed && committed.constructor.DESTROY_LOSES_DATA) {
537
+ for (const address of persisted.terraformAddresses) {
538
+ dataLossResourceIds.set(`${persisted.moduleId} ${address}`, persisted.resourceId);
539
+ }
540
+ }
541
+ }
542
+ // Mark each planned destroy of one.
543
+ for (const [moduleId, planChanges] of planChangesByModule.entries()) {
544
+ for (const [address, { tfActions }] of planChanges.entries()) {
545
+ const resourceId = dataLossResourceIds.get(`${moduleId} ${address}`);
546
+ if (resourceId !== undefined && tfActions.includes('delete')) {
547
+ report.dataLoss.push({
548
+ address,
549
+ message: `Terraform plans to destroy "${address}", and the data resource "${resourceId}" holds is lost with it.`,
550
+ moduleId,
551
+ resourceId,
552
+ });
553
+ }
554
+ }
555
+ }
478
556
  return report;
479
557
  }
480
558
  //# sourceMappingURL=validate.mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.mode.js","sourceRoot":"","sources":["../../src/modes/validate.mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.mode.js","sourceRoot":"","sources":["../../src/modes/validate.mode.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Constructable, ModuleSchemaInputs, UnknownModule } from '../app.type.js';
1
+ import type { Constructable, ModelSerializedOutput, ModuleSchemaInputs, UnknownModule } from '../app.type.js';
2
2
  import { CommitHook } from '../functions/hook/commit.hook.js';
3
3
  import { ModelActionHook } from '../functions/hook/model-action.hook.js';
4
4
  import { ResourceActionHook } from '../functions/hook/resource-action.hook.js';
@@ -38,6 +38,12 @@ export declare class ModuleContainer {
38
38
  * @internal
39
39
  */
40
40
  getModuleInstanceInputKeys(moduleId: string): string[];
41
+ /**
42
+ * Every module that ran, by module id, with the inputs it was given before references resolved.
43
+ *
44
+ * @internal
45
+ */
46
+ getModuleInstances(): ModelSerializedOutput['modules'];
41
47
  /**
42
48
  * @internal
43
49
  */
@@ -16,6 +16,7 @@ import { OverlayDataRepository } from '../overlays/overlay-data.repository.js';
16
16
  import { AOverlay } from '../overlays/overlay.abstract.js';
17
17
  import { EventService } from '../services/event/event.service.js';
18
18
  import { InputService } from '../services/input/input.service.js';
19
+ import { DiffUtility } from '../utilities/diff/diff.utility.js';
19
20
  /**
20
21
  * @internal
21
22
  */
@@ -96,8 +97,8 @@ export class ModuleContainer {
96
97
  // Register module.
97
98
  this.inputService.registerModule(i.moduleId, instance);
98
99
  i.applied = true;
100
+ this.eventService.emit(new ModuleEvent(module.name, { inputs: { ...resolvedModuleSchema }, moduleId: i.moduleId }));
99
101
  }
100
- this.eventService.emit(new ModuleEvent(module.name));
101
102
  }
102
103
  return result;
103
104
  }
@@ -125,6 +126,25 @@ export class ModuleContainer {
125
126
  }
126
127
  return this.modules[moduleIndex].instances.find((i) => i.moduleId === moduleId).inputKeys;
127
128
  }
129
+ /**
130
+ * Every module that ran, by module id, with the inputs it was given before references resolved.
131
+ *
132
+ * @internal
133
+ */
134
+ getModuleInstances() {
135
+ const modules = {};
136
+ for (const { instances, module, properties } of this.modules) {
137
+ for (const { applied, inputs, moduleId } of instances) {
138
+ if (applied) {
139
+ modules[moduleId] = {
140
+ className: `${properties.packageName}/${module.name}`,
141
+ inputs,
142
+ };
143
+ }
144
+ }
145
+ }
146
+ return modules;
147
+ }
128
148
  /**
129
149
  * @internal
130
150
  */
@@ -134,16 +154,32 @@ export class ModuleContainer {
134
154
  if (!m) {
135
155
  throw new ModuleError(`Module "${moduleName}" not yet registered!`, moduleName);
136
156
  }
137
- m.hidden = false;
138
- if (m.instances.findIndex((i) => i.moduleId === moduleId) !== -1) {
139
- return;
157
+ // Octo reads a reference such as `${{module-id.model.region}}` by splitting it on dots.
158
+ if (moduleId.includes('.')) {
159
+ throw new ModuleError(`Module id "${moduleId}" cannot contain "."!`, moduleName);
140
160
  }
161
+ // Loading a module again under its id, with the same inputs, changes nothing. Any other module
162
+ // under that id would be lost.
163
+ const copiedInputs = JSON.parse(JSON.stringify(inputs));
164
+ const existing = this.modules.find((metadata) => metadata.instances.some((i) => i.moduleId === moduleId));
165
+ if (existing) {
166
+ const instance = existing.instances.find((i) => i.moduleId === moduleId);
167
+ if (existing === m && DiffUtility.isObjectDeepEquals(instance.inputs, copiedInputs)) {
168
+ m.hidden = false;
169
+ return;
170
+ }
171
+ throw new ModuleError(`Module id "${moduleId}" is already in use!`, moduleName);
172
+ }
173
+ m.hidden = false;
141
174
  m.instances.push({
142
175
  applied: false,
143
176
  inputKeys: getSchemaKeys(module.MODULE_SCHEMA),
177
+ inputs: copiedInputs,
144
178
  moduleId,
145
179
  });
146
- for (const [key, value] of Object.entries(inputs)) {
180
+ // A copy of its own: resolving an input overwrites it in place, which would change the copy kept
181
+ // above to compare a later load against.
182
+ for (const [key, value] of Object.entries(copiedInputs)) {
147
183
  this.inputService.registerInput(moduleId, key, JSON.parse(JSON.stringify(value)));
148
184
  }
149
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module.container.js","sourceRoot":"","sources":["../../src/modules/module.container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.container.js","sourceRoot":"","sources":["../../src/modules/module.container.ts"],"names":[],"mappings":"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"}