@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.
- package/README.md +108 -21
- package/dist/app.type.d.ts +141 -22
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +3 -5
- package/dist/decorators/model.decorator.js +1 -6
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +2 -2
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +50 -1
- package/dist/decorators/resource.decorator.js +38 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/errors/schema.error.d.ts +8 -1
- package/dist/errors/schema.error.js +5 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +4 -3
- package/dist/errors/terraform.error.js +4 -3
- package/dist/errors/terraform.error.js.map +1 -1
- package/dist/errors/transaction.error.d.ts +32 -2
- package/dist/errors/transaction.error.js +22 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -2
- package/dist/events/action.event.js +2 -2
- package/dist/events/action.event.js.map +1 -1
- package/dist/events/command.event.d.ts +43 -0
- package/dist/events/command.event.js +33 -0
- package/dist/events/command.event.js.map +1 -0
- package/dist/events/event.model.d.ts +7 -5
- package/dist/events/event.model.js +5 -3
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -1
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -1
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -1
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -1
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +1 -1
- package/dist/events/mode-result.event.js.map +1 -1
- package/dist/events/mode.event.d.ts +8 -4
- package/dist/events/mode.event.js.map +1 -1
- package/dist/events/module.event.d.ts +7 -3
- package/dist/events/module.event.js +3 -2
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +1 -1
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +1 -1
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/state.event.d.ts +102 -0
- package/dist/events/state.event.js +69 -0
- package/dist/events/state.event.js.map +1 -0
- package/dist/events/terraform.event.d.ts +37 -1
- package/dist/events/terraform.event.js +24 -0
- package/dist/events/terraform.event.js.map +1 -1
- package/dist/events/transaction.event.d.ts +3 -3
- package/dist/events/transaction.event.js +1 -1
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.js +1 -1
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.js +2 -2
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +9 -22
- package/dist/functions/dependency/dependency.js +5 -1
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +14 -7
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +8 -10
- package/dist/functions/node/node-action.abstract.js +10 -16
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.js +21 -10
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +2 -1
- package/dist/functions/schema/schema.js +1 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/index.type.d.ts +5 -0
- package/dist/index.type.js +2 -0
- package/dist/index.type.js.map +1 -0
- package/dist/main.d.ts +4 -3
- package/dist/main.js +27 -11
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +6 -0
- package/dist/models/account/account.model.js +16 -0
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/app/app.model.d.ts +0 -10
- package/dist/models/app/app.model.js +0 -30
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +4 -0
- package/dist/models/deployment/deployment.schema.js +4 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +2 -2
- package/dist/models/environment/environment.model.js +2 -2
- package/dist/models/execution/execution.model.d.ts +1 -1
- package/dist/models/execution/execution.model.js +1 -1
- package/dist/models/image/image.model.d.ts +4 -3
- package/dist/models/image/image.model.js +7 -6
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/model.abstract.js +1 -1
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/pipeline/pipeline.model.d.ts +1 -1
- package/dist/models/pipeline/pipeline.model.js +1 -1
- package/dist/models/server/server.model.d.ts +2 -2
- package/dist/models/server/server.model.js +2 -2
- package/dist/models/service/service.model.d.ts +28 -11
- package/dist/models/service/service.model.js +56 -16
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +46 -2
- package/dist/models/service/service.schema.js +54 -2
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/modes/commit.mode.d.ts +2 -2
- package/dist/modes/commit.mode.js +2 -2
- package/dist/modes/generate.mode.d.ts +2 -1
- package/dist/modes/generate.mode.js +3 -2
- package/dist/modes/generate.mode.js.map +1 -1
- package/dist/modes/run-action.mode.d.ts +1 -1
- package/dist/modes/run-action.mode.js +1 -1
- package/dist/modes/validate.mode.d.ts +24 -0
- package/dist/modes/validate.mode.js +89 -11
- package/dist/modes/validate.mode.js.map +1 -1
- package/dist/modules/module.container.d.ts +7 -1
- package/dist/modules/module.container.js +41 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.js +35 -83
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/overlay.abstract.js +1 -1
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +4 -2
- package/dist/resources/resource.abstract.d.ts +50 -8
- package/dist/resources/resource.abstract.js +63 -32
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +0 -2
- package/dist/resources/resource.schema.d.ts +11 -1
- package/dist/resources/resource.schema.js +11 -1
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/services/event/event.service.d.ts +2 -2
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +30 -2
- package/dist/services/input/input.service.js +71 -4
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +4 -6
- package/dist/services/serialization/model/model-serialization.service.js +20 -17
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +7 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +25 -12
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +25 -9
- package/dist/services/state-management/local.state-provider.js +127 -21
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/remote.state-provider.d.ts +216 -0
- package/dist/services/state-management/remote.state-provider.js +645 -0
- package/dist/services/state-management/remote.state-provider.js.map +1 -0
- package/dist/services/state-management/state-management.service.d.ts +83 -40
- package/dist/services/state-management/state-management.service.js +130 -26
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +50 -9
- package/dist/services/state-management/state-provider.interface.js +14 -1
- package/dist/services/state-management/state-provider.interface.js.map +1 -1
- package/dist/services/state-management/terraform-state.service.d.ts +32 -9
- package/dist/services/state-management/terraform-state.service.js +64 -21
- package/dist/services/state-management/terraform-state.service.js.map +1 -1
- package/dist/services/state-management/test.state-provider.d.ts +11 -10
- package/dist/services/state-management/test.state-provider.js +35 -14
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +57 -3
- package/dist/services/terraform/terraform.service.js +95 -8
- package/dist/services/terraform/terraform.service.js.map +1 -1
- package/dist/services/terraform/terraform.type.js +1 -1
- package/dist/services/terraform/terraform.type.js.map +1 -1
- package/dist/services/transaction/transaction.service.d.ts +29 -5
- package/dist/services/transaction/transaction.service.js +198 -34
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +2 -2
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +2 -1
- package/dist/{functions → utilities}/diff/diff.utility.js +4 -3
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +6 -7
- package/dist/utilities/file/file.utility.js +13 -68
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +83 -16
- package/dist/utilities/hcl/hcl.utility.js +200 -27
- package/dist/utilities/hcl/hcl.utility.js.map +1 -1
- package/dist/utilities/http/http.utility.d.ts +57 -0
- package/dist/utilities/http/http.utility.js +98 -0
- package/dist/utilities/http/http.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +23 -3
- package/dist/utilities/string/string.utility.js +29 -3
- package/dist/utilities/string/string.utility.js.map +1 -1
- package/dist/utilities/terraform/terraform.utility.d.ts +70 -21
- package/dist/utilities/terraform/terraform.utility.js +255 -66
- package/dist/utilities/terraform/terraform.utility.js.map +1 -1
- package/dist/utilities/test-helpers/test-classes.d.ts +19 -0
- package/dist/utilities/test-helpers/test-classes.js +22 -0
- package/dist/utilities/test-helpers/test-classes.js.map +1 -1
- package/dist/utilities/test-helpers/test-models.d.ts +8 -1
- package/dist/utilities/test-helpers/test-models.js +25 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +1 -1
- package/dist/utilities/test-helpers/test-modes.js +36 -13
- package/dist/utilities/test-helpers/test-modes.js.map +1 -1
- package/dist/utilities/test-helpers/test-modules.d.ts +6 -0
- package/dist/utilities/test-helpers/test-modules.js +6 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -1
- package/dist/utilities/test-helpers/test-overlays.d.ts +3 -1
- package/dist/utilities/test-helpers/test-overlays.js +8 -2
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +4 -2
- package/dist/utilities/test-helpers/test-resources.js +22 -20
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/package.json +7 -2
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/state-management/file-app-lock.utility.d.ts +0 -43
- package/dist/services/state-management/file-app-lock.utility.js +0 -124
- package/dist/services/state-management/file-app-lock.utility.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -71
- package/dist/services/state-management/local-encryption.state-provider.js +0 -116
- 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
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
?
|
|
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 {
|
|
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({
|
|
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
|
-
|
|
138
|
-
if (
|
|
139
|
-
|
|
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
|
-
|
|
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":";;;;;;
|
|
1
|
+
{"version":3,"file":"module.container.js","sourceRoot":"","sources":["../../src/modules/module.container.ts"],"names":[],"mappings":"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"}
|