@quadnix/octo 0.0.30 → 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/LICENSE +661 -0
- package/README.md +117 -8
- package/dist/app.type.d.ts +277 -19
- package/dist/app.type.js +80 -9
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +10 -6
- package/dist/decorators/action.decorator.js +19 -6
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +12 -5
- package/dist/decorators/anchor.decorator.js +12 -5
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.d.ts +1 -1
- package/dist/decorators/enable-hook.decorator.js +1 -1
- package/dist/decorators/factory.decorator.d.ts +18 -34
- package/dist/decorators/factory.decorator.js +18 -34
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +4 -6
- package/dist/decorators/model.decorator.js +2 -7
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +16 -10
- package/dist/decorators/module.decorator.js +16 -10
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +7 -2
- package/dist/decorators/on-event.decorator.js +5 -0
- 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/decorators/validate.decorator.d.ts +15 -1
- package/dist/decorators/validate.decorator.js +15 -1
- package/dist/decorators/validate.decorator.js.map +1 -1
- package/dist/errors/container.error.d.ts +18 -0
- package/dist/errors/container.error.js +18 -0
- package/dist/errors/container.error.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/module.error.d.ts +6 -0
- package/dist/errors/module.error.js +6 -0
- package/dist/errors/module.error.js.map +1 -1
- package/dist/errors/node.error.d.ts +56 -0
- package/dist/errors/node.error.js +56 -0
- package/dist/errors/node.error.js.map +1 -1
- package/dist/errors/schema.error.d.ts +14 -1
- package/dist/errors/schema.error.js +11 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +20 -0
- package/dist/errors/terraform.error.js +24 -0
- package/dist/errors/terraform.error.js.map +1 -0
- package/dist/errors/transaction.error.d.ts +93 -2
- package/dist/errors/transaction.error.js +83 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -4
- package/dist/events/action.event.js +2 -4
- 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 +26 -8
- package/dist/events/event.model.js +15 -7
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -7
- package/dist/events/hook/commit.hook.event.js +0 -6
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -3
- package/dist/events/hook/hook.event.js +0 -2
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -7
- package/dist/events/hook/model.hook.event.js +0 -6
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -7
- package/dist/events/hook/resource.hook.event.js +0 -6
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +57 -0
- package/dist/events/mode-result.event.js +24 -0
- package/dist/events/mode-result.event.js.map +1 -0
- package/dist/events/mode.event.d.ts +61 -0
- package/dist/events/mode.event.js +32 -0
- package/dist/events/mode.event.js.map +1 -0
- package/dist/events/module.event.d.ts +7 -5
- package/dist/events/module.event.js +3 -4
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +19 -15
- package/dist/events/registration.event.js +18 -14
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +16 -13
- package/dist/events/serialization.event.js +15 -12
- 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 +78 -0
- package/dist/events/terraform.event.js +55 -0
- package/dist/events/terraform.event.js.map +1 -0
- package/dist/events/transaction.event.d.ts +3 -40
- package/dist/events/transaction.event.js +1 -29
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.d.ts +54 -13
- package/dist/functions/container/container.js +64 -19
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.d.ts +43 -29
- package/dist/functions/container/test-container.js +71 -43
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +84 -23
- package/dist/functions/dependency/dependency.js +84 -14
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
- package/dist/functions/diff/aggregate-resource-actions.js +41 -0
- package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
- package/dist/functions/diff/diff-metadata.d.ts +21 -3
- package/dist/functions/diff/diff-metadata.js +18 -0
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +68 -7
- package/dist/functions/diff/diff.js +44 -3
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/hook/commit.hook.d.ts +16 -1
- package/dist/functions/hook/commit.hook.js +21 -6
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.d.ts +16 -1
- package/dist/functions/hook/model-action.hook.js +21 -6
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.d.ts +16 -1
- package/dist/functions/hook/resource-action.hook.js +21 -6
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +23 -2
- package/dist/functions/node/node-action.abstract.js +22 -8
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.d.ts +56 -5
- package/dist/functions/node/node.abstract.js +106 -22
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +3 -1
- package/dist/functions/schema/schema.d.ts +7 -0
- package/dist/functions/schema/schema.js +10 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +12 -6
- package/dist/index.js +9 -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 +245 -14
- package/dist/main.js +377 -72
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +43 -7
- package/dist/models/account/account.model.js +56 -8
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/account/account.schema.d.ts +13 -1
- package/dist/models/account/account.schema.js +12 -0
- package/dist/models/account/account.schema.js.map +1 -1
- package/dist/models/app/app.model.d.ts +13 -8
- package/dist/models/app/app.model.js +17 -32
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/app/app.schema.d.ts +6 -0
- package/dist/models/app/app.schema.js +6 -0
- package/dist/models/app/app.schema.js.map +1 -1
- package/dist/models/deployment/deployment.model.d.ts +13 -1
- package/dist/models/deployment/deployment.model.js +16 -4
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +6 -0
- package/dist/models/deployment/deployment.schema.js +6 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +15 -3
- package/dist/models/environment/environment.model.js +22 -10
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/environment/environment.schema.d.ts +2 -0
- package/dist/models/environment/environment.schema.js +2 -0
- package/dist/models/environment/environment.schema.js.map +1 -1
- package/dist/models/execution/execution.model.d.ts +21 -3
- package/dist/models/execution/execution.model.js +47 -29
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/execution/execution.schema.d.ts +11 -0
- package/dist/models/execution/execution.schema.js +11 -0
- package/dist/models/execution/execution.schema.js.map +1 -1
- package/dist/models/filesystem/filesystem.model.d.ts +27 -1
- package/dist/models/filesystem/filesystem.model.js +30 -4
- package/dist/models/filesystem/filesystem.model.js.map +1 -1
- package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
- package/dist/models/filesystem/filesystem.schema.js +5 -0
- package/dist/models/filesystem/filesystem.schema.js.map +1 -1
- package/dist/models/image/image.model.d.ts +19 -5
- package/dist/models/image/image.model.js +25 -11
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/image/image.schema.d.ts +8 -0
- package/dist/models/image/image.schema.js +8 -0
- package/dist/models/image/image.schema.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +17 -4
- package/dist/models/model.abstract.d.ts +96 -1
- package/dist/models/model.abstract.js +107 -8
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +3 -0
- package/dist/models/pipeline/pipeline.model.d.ts +14 -2
- package/dist/models/pipeline/pipeline.model.js +19 -7
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
- package/dist/models/pipeline/pipeline.schema.js +8 -0
- package/dist/models/pipeline/pipeline.schema.js.map +1 -1
- package/dist/models/region/region.model.d.ts +16 -1
- package/dist/models/region/region.model.js +19 -4
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/region/region.schema.d.ts +6 -0
- package/dist/models/region/region.schema.js +6 -0
- package/dist/models/region/region.schema.js.map +1 -1
- package/dist/models/server/server.model.d.ts +15 -3
- package/dist/models/server/server.model.js +18 -6
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/server/server.schema.d.ts +3 -1
- package/dist/models/server/server.schema.js +3 -1
- package/dist/models/server/server.schema.js.map +1 -1
- package/dist/models/service/service.model.d.ts +37 -6
- package/dist/models/service/service.model.js +65 -11
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +48 -1
- package/dist/models/service/service.schema.js +56 -1
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/models/subnet/subnet.model.d.ts +27 -3
- package/dist/models/subnet/subnet.model.js +40 -16
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/models/subnet/subnet.schema.d.ts +9 -0
- package/dist/models/subnet/subnet.schema.js +9 -0
- package/dist/models/subnet/subnet.schema.js.map +1 -1
- package/dist/modes/apply-transaction.d.ts +23 -0
- package/dist/modes/apply-transaction.js +25 -0
- package/dist/modes/apply-transaction.js.map +1 -0
- package/dist/modes/commit.mode.d.ts +54 -0
- package/dist/modes/commit.mode.js +235 -0
- package/dist/modes/commit.mode.js.map +1 -0
- package/dist/modes/generate.mode.d.ts +30 -0
- package/dist/modes/generate.mode.js +50 -0
- package/dist/modes/generate.mode.js.map +1 -0
- package/dist/modes/run-action.mode.d.ts +30 -0
- package/dist/modes/run-action.mode.js +140 -0
- package/dist/modes/run-action.mode.js.map +1 -0
- package/dist/modes/validate.mode.d.ts +186 -0
- package/dist/modes/validate.mode.js +558 -0
- package/dist/modes/validate.mode.js.map +1 -0
- package/dist/modules/module.abstract.d.ts +51 -0
- package/dist/modules/module.abstract.js +36 -0
- package/dist/modules/module.abstract.js.map +1 -1
- package/dist/modules/module.container.d.ts +43 -1
- package/dist/modules/module.container.js +77 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.d.ts +139 -25
- package/dist/modules/test-module.container.js +383 -199
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.d.ts +32 -1
- package/dist/overlays/anchor.abstract.js +42 -11
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/anchor.schema.d.ts +21 -0
- package/dist/overlays/anchor.schema.js +21 -0
- package/dist/overlays/anchor.schema.js.map +1 -1
- package/dist/overlays/overlay-data.repository.d.ts +18 -0
- package/dist/overlays/overlay-data.repository.js +18 -0
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +56 -1
- package/dist/overlays/overlay.abstract.js +79 -20
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.schema.d.ts +20 -0
- package/dist/overlays/overlay.schema.js +20 -0
- package/dist/overlays/overlay.schema.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +29 -3
- package/dist/resources/resource-data.repository.d.ts +63 -1
- package/dist/resources/resource-data.repository.js +94 -4
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +163 -6
- package/dist/resources/resource.abstract.js +223 -59
- 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 +39 -1
- package/dist/resources/resource.schema.js +38 -0
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/resources/terraform-resource.abstract.d.ts +44 -0
- package/dist/resources/terraform-resource.abstract.js +45 -0
- package/dist/resources/terraform-resource.abstract.js.map +1 -0
- package/dist/services/event/event.service.d.ts +32 -5
- package/dist/services/event/event.service.js +58 -16
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +82 -5
- package/dist/services/input/input.service.js +143 -12
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
- package/dist/services/schema-translation/schema-translation.service.js +9 -0
- package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
- package/dist/services/serialization/model/model-serialization.service.js +113 -62
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +67 -4
- package/dist/services/state-management/local.state-provider.js +168 -41
- 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 +195 -17
- package/dist/services/state-management/state-management.service.js +259 -10
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +98 -3
- 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 +99 -0
- package/dist/services/state-management/terraform-state.service.js +197 -0
- package/dist/services/state-management/terraform-state.service.js.map +1 -0
- package/dist/services/state-management/test.state-provider.d.ts +42 -4
- package/dist/services/state-management/test.state-provider.js +77 -25
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +480 -0
- package/dist/services/terraform/terraform.service.js +1082 -0
- package/dist/services/terraform/terraform.service.js.map +1 -0
- package/dist/services/terraform/terraform.type.d.ts +387 -0
- package/dist/services/terraform/terraform.type.js +579 -0
- package/dist/services/terraform/terraform.type.js.map +1 -0
- package/dist/services/transaction/transaction.service.d.ts +110 -10
- package/dist/services/transaction/transaction.service.js +570 -251
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +15 -3
- package/dist/services/validation/validation.service.js +12 -0
- package/dist/services/validation/validation.service.js.map +1 -1
- package/dist/utilities/array/array.utility.d.ts +3 -0
- package/dist/utilities/array/array.utility.js +3 -0
- package/dist/utilities/array/array.utility.js.map +1 -1
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
- package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +16 -2
- package/dist/utilities/file/file.utility.js +23 -61
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
- package/dist/utilities/hcl/hcl.utility.js +402 -0
- package/dist/utilities/hcl/hcl.utility.js.map +1 -0
- 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/node/node.utility.d.ts +3 -0
- package/dist/utilities/node/node.utility.js +3 -0
- package/dist/utilities/node/node.utility.js.map +1 -1
- package/dist/utilities/object/object.utility.d.ts +12 -0
- package/dist/utilities/object/object.utility.js +12 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/project/project.utility.d.ts +28 -0
- package/dist/utilities/project/project.utility.js +35 -0
- package/dist/utilities/project/project.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +41 -0
- package/dist/utilities/string/string.utility.js +65 -0
- package/dist/utilities/string/string.utility.js.map +1 -0
- package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
- package/dist/utilities/terraform/terraform.utility.js +623 -0
- package/dist/utilities/terraform/terraform.utility.js.map +1 -0
- package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
- package/dist/utilities/test-helpers/test-classes.js +38 -39
- 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 +37 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
- package/dist/utilities/test-helpers/test-modes.js +486 -0
- package/dist/utilities/test-helpers/test-modes.js.map +1 -0
- package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
- package/dist/utilities/test-helpers/test-modules.js +85 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -0
- package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
- package/dist/utilities/test-helpers/test-overlays.js +56 -6
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
- package/dist/utilities/test-helpers/test-resources.js +83 -23
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/dist/utilities/validation/validation.utility.d.ts +24 -0
- package/dist/utilities/validation/validation.utility.js +24 -0
- package/dist/utilities/validation/validation.utility.js.map +1 -1
- package/package.json +12 -6
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/capture/capture.service.d.ts +0 -19
- package/dist/services/capture/capture.service.js +0 -43
- package/dist/services/capture/capture.service.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
- package/dist/services/state-management/local-encryption.state-provider.js +0 -90
- package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
- package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
- package/dist/utilities/cidr/cidr.utility.js +0 -51
- package/dist/utilities/cidr/cidr.utility.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -10,102 +10,221 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { strict as assert } from 'assert';
|
|
11
11
|
import { EnableHook } from './decorators/enable-hook.decorator.js';
|
|
12
12
|
import { TransactionError } from './errors/index.js';
|
|
13
|
+
import { CommitModeCompletedEvent, ModeFailedEvent, ModeFinishedEvent, ModeStartedEvent, TerraformFoldersWrittenEvent, ValidateModeCompletedEvent, } from './events/index.js';
|
|
13
14
|
import { Container } from './functions/container/container.js';
|
|
14
15
|
import { DiffMetadata } from './functions/diff/diff-metadata.js';
|
|
15
16
|
import { App } from './models/app/app.model.js';
|
|
17
|
+
import { applyModelTransaction } from './modes/apply-transaction.js';
|
|
18
|
+
import { commit as runCommit } from './modes/commit.mode.js';
|
|
19
|
+
import { generate as runGenerate } from './modes/generate.mode.js';
|
|
20
|
+
import { runAction as runRunAction } from './modes/run-action.mode.js';
|
|
21
|
+
import { validate as runValidate } from './modes/validate.mode.js';
|
|
16
22
|
import { ModuleContainer } from './modules/module.container.js';
|
|
17
|
-
import {
|
|
18
|
-
import { BaseResourceSchema } from './resources/resource.schema.js';
|
|
19
|
-
import { CaptureService } from './services/capture/capture.service.js';
|
|
23
|
+
import { EventService } from './services/event/event.service.js';
|
|
20
24
|
import { InputService } from './services/input/input.service.js';
|
|
21
25
|
import { SchemaTranslationService } from './services/schema-translation/schema-translation.service.js';
|
|
22
26
|
import { ModelSerializationService } from './services/serialization/model/model-serialization.service.js';
|
|
23
27
|
import { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
|
|
24
28
|
import { StateManagementService, StateManagementServiceFactory, } from './services/state-management/state-management.service.js';
|
|
25
|
-
import {
|
|
29
|
+
import { TerraformService } from './services/terraform/terraform.service.js';
|
|
26
30
|
/**
|
|
31
|
+
* The entry point to Octo.
|
|
32
|
+
*
|
|
33
|
+
* You describe infrastructure by loading modules, and Octo turns that description into terraform,
|
|
34
|
+
* checks what terraform intends to do, and records what it did. That is the lifecycle, and it is
|
|
35
|
+
* always these four steps:
|
|
36
|
+
*
|
|
37
|
+
* 1. {@link Octo.generate} - write the terraform module folders for the infrastructure you described.
|
|
38
|
+
* 2. {@link Octo.validate} - correlate terraform's plans with your intent, and report the difference.
|
|
39
|
+
* 3. `terraform apply` - see {@link TerraformUtility}. Octo does not do this for you.
|
|
40
|
+
* 4. {@link Octo.commit} - record the applied result back into Octo's state.
|
|
41
|
+
*
|
|
42
|
+
* Splitting them is deliberate: nothing is applied until you have seen a report of what would change,
|
|
43
|
+
* and each step is a separate process, so a CI pipeline can gate between them.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const octo = new Octo();
|
|
48
|
+
* await octo.initialize(new LocalStateProvider('./infrastructure'));
|
|
49
|
+
*
|
|
50
|
+
* octo.registerTerraformConfig({ providers: { aws: { source: 'hashicorp/aws' } } });
|
|
51
|
+
* octo.registerTerraformProvider('aws', '1234567890', 'us-east-1');
|
|
52
|
+
*
|
|
53
|
+
* octo.loadModule(SimpleAppModule, 'app-module', { name: 'my-app' });
|
|
54
|
+
* await octo.compose();
|
|
55
|
+
*
|
|
56
|
+
* await octo.generate(octo.getRootModel(), { outputDir: './infrastructure/terraform' });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
27
59
|
* @group Main
|
|
60
|
+
*
|
|
61
|
+
* @see Definition of [Modules](/docs/fundamentals/modules).
|
|
28
62
|
*/
|
|
29
63
|
export class Octo {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
throw new TransactionError('App is not in lock state!');
|
|
59
|
-
}
|
|
60
|
-
const isAppLocked = await this.stateManagementService.isAppLocked(appLockId);
|
|
61
|
-
if (!isAppLocked) {
|
|
62
|
-
throw new TransactionError('App is not in lock state!');
|
|
63
|
-
}
|
|
64
|
-
await this.stateManagementService.updateAppLockTransaction(appLockId);
|
|
65
|
-
let resourceTransaction = undefined;
|
|
66
|
-
try {
|
|
67
|
-
resourceTransaction = await transaction.next();
|
|
68
|
-
if (yieldResourceTransaction) {
|
|
69
|
-
yield resourceTransaction.value;
|
|
70
|
-
}
|
|
71
|
-
return (await transaction.next()).value;
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
await this.commitTransaction(app, modelTransaction.value, resourceTransaction ? resourceTransaction.value : []);
|
|
64
|
+
/**
|
|
65
|
+
* The last step of the lifecycle - records the result of a `terraform apply` back into Octo's state.
|
|
66
|
+
*
|
|
67
|
+
* A terraform apply reports what it created, and part of that is what each octo resource's
|
|
68
|
+
* `response` is made of - ARNs, generated IDs, endpoints. Without this step the next run has no
|
|
69
|
+
* idea any of it exists.
|
|
70
|
+
*
|
|
71
|
+
* **All-or-nothing**: if an expected output is missing, this throws before touching state, so a
|
|
72
|
+
* partial apply never leaves a half-written record behind. Pass `partial` after an apply that
|
|
73
|
+
* failed and the missing outputs become warnings instead, with every resource they belong to left
|
|
74
|
+
* out of the committed graph. Outputs for a folder Octo does not track are ignored, and returned
|
|
75
|
+
* as warnings for you to surface.
|
|
76
|
+
*
|
|
77
|
+
* **Requires the lock**, and does not release it. Taking and releasing the lock belongs to whoever
|
|
78
|
+
* drives the lifecycle - the CLI's `octo commit` releases it once this returns, and keeps it when this
|
|
79
|
+
* throws.
|
|
80
|
+
*
|
|
81
|
+
* @param app The root model, from {@link Octo.getRootModel}.
|
|
82
|
+
* @param options `lockId` is the lock from `octo lock`. `outputs` is
|
|
83
|
+
* `TerraformUtility.output(dir, { json: true })` in full. `partial` records what a failed apply
|
|
84
|
+
* did build.
|
|
85
|
+
* @param transaction The model transaction result.
|
|
86
|
+
* @throws {@link TransactionError} When the app is not locked, or `lockId` is not the lock held.
|
|
87
|
+
*/
|
|
88
|
+
async commit(app, options, transaction) {
|
|
89
|
+
// Checked before the mode starts, so a commit without the lock reads no state and writes none.
|
|
90
|
+
if (!(await this.stateManagementService.isAppLocked(options.lockId))) {
|
|
91
|
+
throw new TransactionError('App is not locked!');
|
|
75
92
|
}
|
|
93
|
+
return this.runMode('commit', app.name, async () => {
|
|
94
|
+
const { userData } = await this.stateManagementService.getResourceState(this.stateManagementService.actualResourceStateFileName);
|
|
95
|
+
// Build the transaction unless a single-process driver already built it and passed it in.
|
|
96
|
+
const resolvedTransaction = transaction ?? (await applyModelTransaction(app));
|
|
97
|
+
const { externalResourceIds, modelTransaction, ...completed } = await runCommit({
|
|
98
|
+
...options,
|
|
99
|
+
previousFolders: userData.terraformFolders ?? [],
|
|
100
|
+
previousMappings: userData.terraformResources ?? [],
|
|
101
|
+
transaction: resolvedTransaction,
|
|
102
|
+
});
|
|
103
|
+
await this.commitTransaction(app, modelTransaction, []);
|
|
104
|
+
// The committed graph now carries everything an external resource's actions made of it, so the
|
|
105
|
+
// records they wrote mid-apply are cleared. Done after the state is persisted, so a failure
|
|
106
|
+
// here costs a stale record rather than the record itself.
|
|
107
|
+
await Promise.all(externalResourceIds.map((resourceId) => this.stateManagementService.deleteExternalResourceState(resourceId)));
|
|
108
|
+
// Emitted after the state is persisted, so a listener never sees an uncommitted commit.
|
|
109
|
+
this.eventService.emit(new CommitModeCompletedEvent(undefined, completed));
|
|
110
|
+
return { warnings: completed.warnings };
|
|
111
|
+
});
|
|
76
112
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
await this.saveResourceState();
|
|
84
|
-
// Reset the runtime environment with the latest state.
|
|
85
|
-
await this.retrieveResourceState();
|
|
86
|
-
}
|
|
113
|
+
/**
|
|
114
|
+
* Runs every loaded module, in the order {@link Octo.orderModules} set, building the model graph.
|
|
115
|
+
* Call it once, after loading modules and before any lifecycle step.
|
|
116
|
+
*
|
|
117
|
+
* @returns Every model and overlay the modules created, keyed by a unique ID.
|
|
118
|
+
*/
|
|
87
119
|
async compose() {
|
|
88
120
|
return await this.moduleContainer.apply();
|
|
89
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* The first step of the lifecycle - writes the terragrunt module folders for the infrastructure you
|
|
124
|
+
* described, one folder per module, and saves the model state.
|
|
125
|
+
*
|
|
126
|
+
* A new module gets a new folder, and a changed module is rewritten in the folder it already has.
|
|
127
|
+
* A module you *removed* is not deleted: its folder is **emptied**, keeping only the provider
|
|
128
|
+
* blocks, so the next terraform apply destroys the live infrastructure rather than orphaning it.
|
|
129
|
+
* Octo never deletes a folder.
|
|
130
|
+
*
|
|
131
|
+
* @param app The root model, from {@link Octo.getRootModel}.
|
|
132
|
+
* @param options `outputDir` is where the module folders are written.
|
|
133
|
+
* @param transaction The model transaction result.
|
|
134
|
+
*/
|
|
135
|
+
async generate(app, options, transaction) {
|
|
136
|
+
return this.runMode('generate', app.name, async () => {
|
|
137
|
+
// The previous folder records must be read before this run writes the new `models.json`, so a
|
|
138
|
+
// module deleted from intent is caught on the generate right after its removal.
|
|
139
|
+
const [{ userData: modelUserData }, { userData: actualResourceUserData }] = await Promise.all([
|
|
140
|
+
this.stateManagementService.getModelState(this.stateManagementService.modelStateFileName),
|
|
141
|
+
this.stateManagementService.getResourceState(this.stateManagementService.actualResourceStateFileName),
|
|
142
|
+
]);
|
|
143
|
+
// The last commit's record says what terraform state holds; the last generate's may say what
|
|
144
|
+
// was never applied. A folder keeps the providers of both, so neither can strand the other's
|
|
145
|
+
// resources in terraform state without the provider to destroy them.
|
|
146
|
+
const previousFolders = new Map();
|
|
147
|
+
for (const record of [
|
|
148
|
+
...(actualResourceUserData.terraformFolders ?? []),
|
|
149
|
+
...(modelUserData.terraformFolders ?? []),
|
|
150
|
+
]) {
|
|
151
|
+
const providers = [...(previousFolders.get(record.moduleId)?.providers ?? [])];
|
|
152
|
+
for (const provider of record.providers) {
|
|
153
|
+
const isRecorded = providers.some((p) => p.providerType === provider.providerType &&
|
|
154
|
+
p.accountId === provider.accountId &&
|
|
155
|
+
p.regionId === provider.regionId);
|
|
156
|
+
if (!isRecorded) {
|
|
157
|
+
providers.push(provider);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
previousFolders.set(record.moduleId, { ...record, providers });
|
|
161
|
+
}
|
|
162
|
+
// Build the transaction unless a single-process driver already built it and passed it in.
|
|
163
|
+
const resolvedTransaction = transaction ?? (await applyModelTransaction(app));
|
|
164
|
+
const previousFolderList = [...previousFolders.values()];
|
|
165
|
+
const resourceDiffs = await runGenerate({
|
|
166
|
+
...options,
|
|
167
|
+
previousFolders: previousFolderList,
|
|
168
|
+
transaction: resolvedTransaction,
|
|
169
|
+
});
|
|
170
|
+
const written = this.terraformService.getModuleIds();
|
|
171
|
+
this.eventService.emit(new TerraformFoldersWrittenEvent(undefined, {
|
|
172
|
+
emptied: previousFolderList
|
|
173
|
+
.map((folder) => folder.moduleId)
|
|
174
|
+
.filter((moduleId) => !written.includes(moduleId)),
|
|
175
|
+
outputDir: options.outputDir,
|
|
176
|
+
written,
|
|
177
|
+
}));
|
|
178
|
+
await this.saveModelState(app);
|
|
179
|
+
return resourceDiffs;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* To fetch a loaded module by its module ID.
|
|
184
|
+
*
|
|
185
|
+
* @returns The module, or `undefined` if no module was loaded under that ID.
|
|
186
|
+
*/
|
|
90
187
|
getModule(...args) {
|
|
91
188
|
return this.inputService.getModule(...args);
|
|
92
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* To fetch the resources a module produced, by its module ID.
|
|
192
|
+
*/
|
|
93
193
|
getModuleResources(...args) {
|
|
94
194
|
return this.inputService.getModuleResources(...args);
|
|
95
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* The root of the model graph - the one {@link App} the loaded modules produced. Every lifecycle
|
|
198
|
+
* step takes it. Call after {@link Octo.compose}.
|
|
199
|
+
*
|
|
200
|
+
* @throws If no app model, or more than one distinct app model, was registered.
|
|
201
|
+
*/
|
|
202
|
+
getRootModel() {
|
|
203
|
+
return this.inputService.getRootModel();
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Boots Octo. Call it once, before anything else.
|
|
207
|
+
*
|
|
208
|
+
* The two optional arguments are how you replace Octo's internals with your own: exclusions run
|
|
209
|
+
* first, so you can unregister a built-in {@link Factory} and then resolve yours in its place.
|
|
210
|
+
*
|
|
211
|
+
* @param stateProvider Where Octo reads and writes its state. See {@link IStateProvider}.
|
|
212
|
+
* @param initializeInContainer Factories to resolve at boot - event listeners, most commonly.
|
|
213
|
+
* @param excludeInContainer Factories to unregister at boot.
|
|
214
|
+
*/
|
|
96
215
|
async initialize(stateProvider, initializeInContainer = [], excludeInContainer = []) {
|
|
97
216
|
const container = Container.getInstance();
|
|
98
217
|
[
|
|
99
|
-
this.
|
|
218
|
+
this.eventService,
|
|
100
219
|
this.inputService,
|
|
101
220
|
this.modelSerializationService,
|
|
102
221
|
this.moduleContainer,
|
|
103
222
|
this.resourceSerializationService,
|
|
104
223
|
this.schemaTranslationService,
|
|
105
224
|
this.stateManagementService,
|
|
106
|
-
this.
|
|
225
|
+
this.terraformService,
|
|
107
226
|
] = await Promise.all([
|
|
108
|
-
container.get(
|
|
227
|
+
container.get(EventService),
|
|
109
228
|
container.get(InputService),
|
|
110
229
|
container.get(ModelSerializationService),
|
|
111
230
|
container.get(ModuleContainer),
|
|
@@ -114,7 +233,7 @@ export class Octo {
|
|
|
114
233
|
container.get(StateManagementService, {
|
|
115
234
|
args: [stateProvider],
|
|
116
235
|
}),
|
|
117
|
-
container.get(
|
|
236
|
+
container.get(TerraformService),
|
|
118
237
|
]);
|
|
119
238
|
for (const exclude of excludeInContainer) {
|
|
120
239
|
container.unRegisterFactory(exclude.type);
|
|
@@ -127,47 +246,233 @@ export class Octo {
|
|
|
127
246
|
// Reset the runtime environment with the latest state.
|
|
128
247
|
await this.retrieveResourceState();
|
|
129
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* To load a module, which {@link Octo.compose} will then run.
|
|
251
|
+
*
|
|
252
|
+
* The same module class can be loaded more than once under different module IDs, and the ID scopes
|
|
253
|
+
* everything that instance produces.
|
|
254
|
+
*
|
|
255
|
+
* @param module The module class, or its registered name.
|
|
256
|
+
* @param moduleId A unique ID for this instance of the module.
|
|
257
|
+
* @param inputs The inputs, matching the module's schema.
|
|
258
|
+
*/
|
|
130
259
|
loadModule(module, moduleId, inputs) {
|
|
131
260
|
this.moduleContainer.load(module, moduleId, inputs);
|
|
132
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* To set the order {@link Octo.compose} runs modules in, by listing their classes.
|
|
264
|
+
*
|
|
265
|
+
* Order matters because a module resolves what earlier modules produced - a subnet module must run
|
|
266
|
+
* after the region module whose region it attaches to.
|
|
267
|
+
*/
|
|
133
268
|
orderModules(...args) {
|
|
134
269
|
this.moduleContainer.order(...args);
|
|
135
270
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
271
|
+
/**
|
|
272
|
+
* To register callbacks that run at fixed points of the lifecycle. Use them to inject behavior -
|
|
273
|
+
* an audit trail, an approval gate - without modifying the framework.
|
|
274
|
+
*
|
|
275
|
+
* The hook points, each with its own signature:
|
|
276
|
+
* - `PreCommitHook` / `PostCommitHook` - around the commit.
|
|
277
|
+
* - `PreModelActionHook` / `PostModelActionHook` - around every model action.
|
|
278
|
+
* - `PreResourceActionHook` / `PostResourceActionHook` - around every resource action.
|
|
279
|
+
*
|
|
280
|
+
* @see Techniques for [Hooks](/docs/techniques/hooks).
|
|
281
|
+
*/
|
|
139
282
|
registerHooks(...args) {
|
|
140
283
|
this.moduleContainer.registerHooks(...args);
|
|
141
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* To teach Octo how to read one schema as another.
|
|
287
|
+
*
|
|
288
|
+
* Modules find each other by schema, so a module that changes its schema breaks its consumers.
|
|
289
|
+
* A translation is the escape hatch: register the schema you have, the schema your module expects,
|
|
290
|
+
* and a function between them, and the lookup keeps working while you migrate.
|
|
291
|
+
*
|
|
292
|
+
* @see Techniques for [Schema](/docs/techniques/schema).
|
|
293
|
+
*/
|
|
142
294
|
registerSchemaTranslation(...args) {
|
|
143
295
|
return this.schemaTranslationService.registerSchemaTranslation(...args);
|
|
144
296
|
}
|
|
297
|
+
/**
|
|
298
|
+
* To apply tags to resources in bulk, so that individual modules do not each have to be told about
|
|
299
|
+
* your organization's tagging policy.
|
|
300
|
+
*
|
|
301
|
+
* Each entry's `scope` decides its reach: empty tags every resource of the app, `moduleId` tags
|
|
302
|
+
* every resource of one module, and `resourceContext` tags a single resource.
|
|
303
|
+
*/
|
|
145
304
|
registerTags(args) {
|
|
146
305
|
for (const { scope, tags } of args) {
|
|
147
306
|
const isGlobal = !scope.moduleId && !scope.resourceContext;
|
|
148
307
|
this.inputService.registerTag((isGlobal || scope), tags);
|
|
149
308
|
}
|
|
150
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* To set the minimum terraform version, and the `required_providers` block rendered into every
|
|
312
|
+
* generated module folder.
|
|
313
|
+
*
|
|
314
|
+
* Call it after {@link Octo.initialize}, and before {@link Octo.generate}.
|
|
315
|
+
*/
|
|
316
|
+
registerTerraformConfig(...args) {
|
|
317
|
+
return this.terraformService.addTerraformConfig(...args);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* To register a terraform provider for one deployment target - a provider type, an account, and a
|
|
321
|
+
* region.
|
|
322
|
+
*
|
|
323
|
+
* Resources bind to a provider by `{ accountId, regionId }` alone, so this is the one place a
|
|
324
|
+
* provider type is named. Register one per account/region combination you deploy into.
|
|
325
|
+
*
|
|
326
|
+
* Call it after {@link Octo.initialize}, and before {@link Octo.generate}.
|
|
327
|
+
*/
|
|
328
|
+
registerTerraformProvider(...args) {
|
|
329
|
+
return this.terraformService.addTerraformProvider(...args);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Runs one resource action for an external resource.
|
|
333
|
+
*
|
|
334
|
+
* Terraform calls back into this mid-apply, through the generated CLI command; it is not a step you
|
|
335
|
+
* run yourself.
|
|
336
|
+
*
|
|
337
|
+
* @internal
|
|
338
|
+
*/
|
|
339
|
+
async runAction(app, options) {
|
|
340
|
+
return this.runMode('run-action', app.name, () => runRunAction(app, options), {
|
|
341
|
+
resourceId: options.resourceId,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* The second step of the lifecycle - correlates terraform's plans with your intent, and reports
|
|
346
|
+
* what it finds. This is what you read before deciding whether to apply.
|
|
347
|
+
*
|
|
348
|
+
* The report answers two questions separately:
|
|
349
|
+
* 1. **What will change, and why.** Including terraform changes Octo did not flag directly but can
|
|
350
|
+
* attribute to something it did - a referenced resource whose identity moved, or an address the
|
|
351
|
+
* resource no longer renders.
|
|
352
|
+
* 2. **What changed that your intent does not explain** - drift, i.e. infrastructure modified
|
|
353
|
+
* outside Octo. Read `confidence` first: drift is only reliable when intent itself is unchanged.
|
|
354
|
+
*
|
|
355
|
+
* The report fails only when terraform could not plan a folder Octo generated. Folders Octo does
|
|
356
|
+
* not track are excluded, and noted. So is every external resource a previous run published and no
|
|
357
|
+
* commit has recorded, which is the only step that reads those records back for a user.
|
|
358
|
+
*
|
|
359
|
+
* @param app The root model, from {@link Octo.getRootModel}.
|
|
360
|
+
* @param plans The whole result of `TerraformUtility.plan(dir, { json: true })`. Its `errors` map
|
|
361
|
+
* carries terraform's own message for each folder that failed to plan.
|
|
362
|
+
* @param transaction The model transaction result.
|
|
363
|
+
*/
|
|
364
|
+
async validate(app, plans, transaction) {
|
|
365
|
+
return this.runMode('validate', app.name, async () => {
|
|
366
|
+
const { userData } = await this.stateManagementService.getResourceState(this.stateManagementService.actualResourceStateFileName);
|
|
367
|
+
const { terraformFolders, terraformResources } = userData;
|
|
368
|
+
const previousMappings = terraformResources ?? [];
|
|
369
|
+
const persistedMappings = new Map();
|
|
370
|
+
for (const mapping of previousMappings) {
|
|
371
|
+
persistedMappings.set(mapping.resourceContext, mapping);
|
|
372
|
+
}
|
|
373
|
+
const externalResourceStateIds = await this.stateManagementService.listExternalResourceStateIds();
|
|
374
|
+
// Build the transaction unless a single-process driver already built it and passed it in.
|
|
375
|
+
const resolvedTransaction = transaction ?? (await applyModelTransaction(app));
|
|
376
|
+
const report = await runValidate({
|
|
377
|
+
externalResourceStateIds,
|
|
378
|
+
persistedMappings,
|
|
379
|
+
planErrors: plans.errors,
|
|
380
|
+
plans: plans.plans,
|
|
381
|
+
previousFolders: terraformFolders ?? [],
|
|
382
|
+
transaction: resolvedTransaction,
|
|
383
|
+
});
|
|
384
|
+
this.eventService.emit(new ValidateModeCompletedEvent(undefined, { report }));
|
|
385
|
+
return report;
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* This function persists the model and resource state using {@link IStateProvider}.
|
|
390
|
+
* Then immediately fetches the resource state in memory for the next set of operations.
|
|
391
|
+
*
|
|
392
|
+
* @internal
|
|
393
|
+
*/
|
|
394
|
+
async commitTransaction(app, modelTransaction, resourceTransaction = []) {
|
|
395
|
+
// `modelTransaction` and `resourceTransaction` is used by hooks of type CommitHook.
|
|
396
|
+
assert(!!modelTransaction);
|
|
397
|
+
assert(!!resourceTransaction);
|
|
398
|
+
// Save the state of the new app and its resources.
|
|
399
|
+
await this.saveModelState(app);
|
|
400
|
+
await this.saveResourceState();
|
|
401
|
+
// Reset the runtime environment with the latest state.
|
|
402
|
+
await this.retrieveResourceState();
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* This function deserializes the resource state in memory.
|
|
406
|
+
* It deserializes the actual resource state into actual resources,
|
|
407
|
+
* and the last resource state into old resources.
|
|
408
|
+
*
|
|
409
|
+
* @internal
|
|
410
|
+
*/
|
|
151
411
|
async retrieveResourceState() {
|
|
152
|
-
const { data: actualSerializedOutput } = await this.stateManagementService.getResourceState(this.actualResourceStateFileName);
|
|
153
|
-
const { data: oldSerializedOutput } = await this.stateManagementService.getResourceState(this.oldResourceStateFileName);
|
|
412
|
+
const { data: actualSerializedOutput } = await this.stateManagementService.getResourceState(this.stateManagementService.actualResourceStateFileName);
|
|
413
|
+
const { data: oldSerializedOutput } = await this.stateManagementService.getResourceState(this.stateManagementService.oldResourceStateFileName);
|
|
154
414
|
// Initialize previous resource state.
|
|
155
415
|
await this.resourceSerializationService.deserialize(actualSerializedOutput, oldSerializedOutput);
|
|
156
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Wraps a mode to emit its boundary events, and re-throws whatever the mode threw.
|
|
419
|
+
* The finishing events use `emitAndWait`, so a listener that writes a file completes first.
|
|
420
|
+
*
|
|
421
|
+
* @internal
|
|
422
|
+
*/
|
|
423
|
+
async runMode(mode, appName, body, { resourceId } = {}) {
|
|
424
|
+
const startedAt = Date.now();
|
|
425
|
+
const payload = { appName, mode, ...(resourceId === undefined ? {} : { resourceId }) };
|
|
426
|
+
this.eventService.emit(new ModeStartedEvent(mode, payload));
|
|
427
|
+
let result;
|
|
428
|
+
try {
|
|
429
|
+
result = await body();
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
await this.eventService.emitAndWait(new ModeFailedEvent(mode, {
|
|
433
|
+
...payload,
|
|
434
|
+
durationInMs: Date.now() - startedAt,
|
|
435
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
436
|
+
}));
|
|
437
|
+
throw error;
|
|
438
|
+
}
|
|
439
|
+
await this.eventService.emitAndWait(new ModeFinishedEvent(mode, { ...payload, durationInMs: Date.now() - startedAt }));
|
|
440
|
+
return result;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* This function persists the in-memory model state.
|
|
444
|
+
*
|
|
445
|
+
* @internal
|
|
446
|
+
*/
|
|
157
447
|
async saveModelState(app) {
|
|
158
448
|
const modelSerializedOutput = await this.modelSerializationService.serialize(app);
|
|
159
|
-
await this.stateManagementService.saveModelState(this.modelStateFileName, modelSerializedOutput, {
|
|
449
|
+
await this.stateManagementService.saveModelState(this.stateManagementService.modelStateFileName, modelSerializedOutput, {
|
|
450
|
+
terraformFolders: this.terraformService.getFolderRecords(),
|
|
160
451
|
version: 1,
|
|
161
452
|
});
|
|
162
|
-
await Container.getInstance().get(OverlayDataRepository, { args: [true] });
|
|
163
453
|
}
|
|
454
|
+
/**
|
|
455
|
+
* This function persists the in-memory resource state.
|
|
456
|
+
* The actual resource state is persisted as actual,
|
|
457
|
+
* and the current resource state is persisted as old.
|
|
458
|
+
*
|
|
459
|
+
* @internal
|
|
460
|
+
*/
|
|
164
461
|
async saveResourceState() {
|
|
165
462
|
const actualSerializedOutput = await this.resourceSerializationService.serializeActualResources();
|
|
166
|
-
await this.stateManagementService.saveResourceState(this.actualResourceStateFileName, actualSerializedOutput, {
|
|
463
|
+
await this.stateManagementService.saveResourceState(this.stateManagementService.actualResourceStateFileName, actualSerializedOutput, {
|
|
464
|
+
terraformFolders: this.terraformService.getFolderRecords(),
|
|
465
|
+
terraformResources: this.terraformService.getOctoTerraformResourceMappings().map((m) => ({
|
|
466
|
+
...(m.destroyLosesData ? { destroyLosesData: true } : {}),
|
|
467
|
+
moduleId: m.moduleId,
|
|
468
|
+
resourceContext: m.resourceContext,
|
|
469
|
+
resourceId: m.resourceId,
|
|
470
|
+
terraformAddresses: m.terraformAddresses,
|
|
471
|
+
})),
|
|
167
472
|
version: 1,
|
|
168
473
|
});
|
|
169
474
|
const oldSerializedOutput = await this.resourceSerializationService.serializeNewResources();
|
|
170
|
-
await this.stateManagementService.saveResourceState(this.oldResourceStateFileName, oldSerializedOutput, {
|
|
475
|
+
await this.stateManagementService.saveResourceState(this.stateManagementService.oldResourceStateFileName, oldSerializedOutput, {
|
|
171
476
|
version: 1,
|
|
172
477
|
});
|
|
173
478
|
}
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,62 @@
|
|
|
1
1
|
import type { UnknownModel } from '../../app.type.js';
|
|
2
|
+
import { Image } from '../image/image.model.js';
|
|
2
3
|
import { AModel } from '../model.abstract.js';
|
|
3
4
|
import { Region } from '../region/region.model.js';
|
|
4
5
|
import { AccountSchema, AccountType } from './account.schema.js';
|
|
5
|
-
type AwsCredentials = {
|
|
6
|
-
readonly accessKeyId: string;
|
|
7
|
-
readonly secretAccessKey: string;
|
|
8
|
-
};
|
|
9
6
|
/**
|
|
7
|
+
* An Account model is the cloud provider account the infrastructure below it is deployed into.
|
|
8
|
+
* It sits between the {@link App} and its {@link Region}s, so one app can span several accounts -
|
|
9
|
+
* e.g. a separate account per environment, or per cloud provider.
|
|
10
|
+
*
|
|
11
|
+
* Credentials are not held here. A module such as `AwsIniAccountModule` extends this model and
|
|
12
|
+
* supplies them through {@link Account.getCredentials}.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const account = new Account(AccountType.AWS, '1234567890');
|
|
17
|
+
* app.addAccount(account);
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
10
20
|
* @group Models/Account
|
|
21
|
+
*
|
|
22
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
11
23
|
*/
|
|
12
24
|
export declare class Account extends AModel<AccountSchema, Account> {
|
|
13
25
|
readonly accountId: string;
|
|
14
26
|
readonly accountType: AccountType;
|
|
27
|
+
/**
|
|
28
|
+
* @param accountType The cloud provider this account belongs to.
|
|
29
|
+
* @param accountId The provider's own identifier for the account.
|
|
30
|
+
*/
|
|
15
31
|
constructor(accountType: AccountType, accountId: string);
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
static unSynth(account: AccountSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Account>;
|
|
36
|
+
/**
|
|
37
|
+
* To add an {@link Image}. The image is used only inside this account. A module links it to the
|
|
38
|
+
* regions it is published into, and those links leave the image's own place unchanged.
|
|
39
|
+
*/
|
|
40
|
+
addImage(image: Image): void;
|
|
16
41
|
/**
|
|
17
42
|
* To add a {@link Region}.
|
|
18
43
|
*/
|
|
19
44
|
addRegion(region: Region): void;
|
|
20
|
-
|
|
45
|
+
/**
|
|
46
|
+
* The credentials this account authenticates with, for the paths octo drives itself rather than
|
|
47
|
+
* through a provider - an external resource's actions, most of all. The shape is the provider's
|
|
48
|
+
* own; octo only carries it from the model to whatever builds the client.
|
|
49
|
+
*
|
|
50
|
+
* @throws {@link ModelError} On the base model, which holds no credentials. Override it in the
|
|
51
|
+
* subclass a module creates.
|
|
52
|
+
*/
|
|
21
53
|
getCredentials(): object;
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
22
57
|
setContext(): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
23
61
|
synth(): AccountSchema;
|
|
24
|
-
static unSynth(account: AccountSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Account>;
|
|
25
62
|
}
|
|
26
|
-
export {};
|