@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
|
@@ -11,7 +11,7 @@ import { ExecutionSchema } from './execution.schema.js';
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```ts
|
|
13
13
|
* const deployment = new Deployment('v1');
|
|
14
|
-
* const environment = new Environment('
|
|
14
|
+
* const environment = new Environment('staging');
|
|
15
15
|
* const subnet = new Subnet(region, 'private');
|
|
16
16
|
* const execution = new Execution(deployment, environment, subnet);
|
|
17
17
|
* ```
|
|
@@ -22,13 +22,31 @@ import { ExecutionSchema } from './execution.schema.js';
|
|
|
22
22
|
*/
|
|
23
23
|
export declare class Execution extends AModel<ExecutionSchema, Execution> {
|
|
24
24
|
readonly environmentVariables: Map<string, string>;
|
|
25
|
-
constructor(deployment: Deployment, environment: Environment, subnet: Subnet);
|
|
26
25
|
/**
|
|
27
26
|
* An `executionId` is a unique identifier for this execution.
|
|
28
27
|
* - Format of executionId is `{serverKey}-{deploymentTag}-{regionId}-{environmentName}-{subnetName}`
|
|
29
28
|
*/
|
|
30
29
|
get executionId(): string;
|
|
30
|
+
/**
|
|
31
|
+
* All three parents claim the new execution as their child, so the graph is complete on construction.
|
|
32
|
+
*
|
|
33
|
+
* @param deployment The deployment whose code this execution runs.
|
|
34
|
+
* @param environment The environment this execution runs in.
|
|
35
|
+
* @param subnet The subnet this execution is placed in.
|
|
36
|
+
* @throws {@link ModelError} If the environment and subnet are in different regions, or an
|
|
37
|
+
* identical execution already exists.
|
|
38
|
+
*/
|
|
39
|
+
constructor(deployment: Deployment, environment: Environment, subnet: Subnet);
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
static unSynth(execution: ExecutionSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Execution>;
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
31
47
|
setContext(): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
32
51
|
synth(): ExecutionSchema;
|
|
33
|
-
static unSynth(execution: ExecutionSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Execution>;
|
|
34
52
|
}
|
|
@@ -25,7 +25,7 @@ import { ExecutionSchema } from './execution.schema.js';
|
|
|
25
25
|
* @example
|
|
26
26
|
* ```ts
|
|
27
27
|
* const deployment = new Deployment('v1');
|
|
28
|
-
* const environment = new Environment('
|
|
28
|
+
* const environment = new Environment('staging');
|
|
29
29
|
* const subnet = new Subnet(region, 'private');
|
|
30
30
|
* const execution = new Execution(deployment, environment, subnet);
|
|
31
31
|
* ```
|
|
@@ -35,6 +35,34 @@ import { ExecutionSchema } from './execution.schema.js';
|
|
|
35
35
|
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
36
36
|
*/
|
|
37
37
|
let Execution = Execution_1 = class Execution extends AModel {
|
|
38
|
+
/**
|
|
39
|
+
* An `executionId` is a unique identifier for this execution.
|
|
40
|
+
* - Format of executionId is `{serverKey}-{deploymentTag}-{regionId}-{environmentName}-{subnetName}`
|
|
41
|
+
*/
|
|
42
|
+
get executionId() {
|
|
43
|
+
const parents = this.getParents();
|
|
44
|
+
const deployment = parents['deployment'][0].to;
|
|
45
|
+
const server = deployment.getParents()['server'][0].to;
|
|
46
|
+
const environment = parents['environment'][0].to;
|
|
47
|
+
const region = environment.getParents()['region'][0].to;
|
|
48
|
+
const subnet = parents['subnet'][0].to;
|
|
49
|
+
return [
|
|
50
|
+
server.serverKey,
|
|
51
|
+
deployment.deploymentTag,
|
|
52
|
+
region.regionId,
|
|
53
|
+
environment.environmentName,
|
|
54
|
+
subnet.subnetName,
|
|
55
|
+
].join('-');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* All three parents claim the new execution as their child, so the graph is complete on construction.
|
|
59
|
+
*
|
|
60
|
+
* @param deployment The deployment whose code this execution runs.
|
|
61
|
+
* @param environment The environment this execution runs in.
|
|
62
|
+
* @param subnet The subnet this execution is placed in.
|
|
63
|
+
* @throws {@link ModelError} If the environment and subnet are in different regions, or an
|
|
64
|
+
* identical execution already exists.
|
|
65
|
+
*/
|
|
38
66
|
constructor(deployment, environment, subnet) {
|
|
39
67
|
super();
|
|
40
68
|
this.environmentVariables = new Map();
|
|
@@ -62,24 +90,23 @@ let Execution = Execution_1 = class Execution extends AModel {
|
|
|
62
90
|
subnet.addChild('subnetId', this, 'executionId');
|
|
63
91
|
}
|
|
64
92
|
/**
|
|
65
|
-
*
|
|
66
|
-
* - Format of executionId is `{serverKey}-{deploymentTag}-{regionId}-{environmentName}-{subnetName}`
|
|
93
|
+
* @internal
|
|
67
94
|
*/
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
environment.environmentName,
|
|
80
|
-
subnet.subnetName,
|
|
81
|
-
].join('-');
|
|
95
|
+
static async unSynth(execution, deReferenceContext) {
|
|
96
|
+
const [deployment, environment, subnet] = (await Promise.all([
|
|
97
|
+
deReferenceContext(execution.deployment.context),
|
|
98
|
+
deReferenceContext(execution.environment.context),
|
|
99
|
+
deReferenceContext(execution.subnet.context),
|
|
100
|
+
]));
|
|
101
|
+
const newExecution = new Execution_1(deployment, environment, subnet);
|
|
102
|
+
for (const [key, value] of Object.entries(execution.environmentVariables)) {
|
|
103
|
+
newExecution.environmentVariables.set(key, value);
|
|
104
|
+
}
|
|
105
|
+
return newExecution;
|
|
82
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
83
110
|
setContext() {
|
|
84
111
|
const parents = this.getParents();
|
|
85
112
|
const deployment = parents['deployment']?.[0]?.to;
|
|
@@ -95,6 +122,9 @@ let Execution = Execution_1 = class Execution extends AModel {
|
|
|
95
122
|
subnet.getContext(),
|
|
96
123
|
].join(',');
|
|
97
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
98
128
|
synth() {
|
|
99
129
|
const parents = this.getParents();
|
|
100
130
|
const deployment = parents['deployment'][0]['to'];
|
|
@@ -107,18 +137,6 @@ let Execution = Execution_1 = class Execution extends AModel {
|
|
|
107
137
|
subnet: { context: subnet.getContext() },
|
|
108
138
|
};
|
|
109
139
|
}
|
|
110
|
-
static async unSynth(execution, deReferenceContext) {
|
|
111
|
-
const [deployment, environment, subnet] = (await Promise.all([
|
|
112
|
-
deReferenceContext(execution.deployment.context),
|
|
113
|
-
deReferenceContext(execution.environment.context),
|
|
114
|
-
deReferenceContext(execution.subnet.context),
|
|
115
|
-
]));
|
|
116
|
-
const newExecution = new Execution_1(deployment, environment, subnet);
|
|
117
|
-
for (const [key, value] of Object.entries(execution.environmentVariables)) {
|
|
118
|
-
newExecution.environmentVariables.set(key, value);
|
|
119
|
-
}
|
|
120
|
-
return newExecution;
|
|
121
|
-
}
|
|
122
140
|
};
|
|
123
141
|
Execution = Execution_1 = __decorate([
|
|
124
142
|
Model('@octo', 'execution', ExecutionSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.model.js","sourceRoot":"","sources":["../../../src/models/execution/execution.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,SAAS,iBAAf,MAAM,SAAU,SAAQ,MAAkC;IAG/D,YAAY,UAAsB,EAAE,WAAwB,EAAE,MAAc;QAC1E,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"execution.model.js","sourceRoot":"","sources":["../../../src/models/execution/execution.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import type { IModelReference } from '../model.interface.js';
|
|
2
2
|
/**
|
|
3
|
+
* Schema of the {@link Execution} model.
|
|
4
|
+
*
|
|
3
5
|
* @group Models/Execution
|
|
4
6
|
*/
|
|
5
7
|
export declare class ExecutionSchema {
|
|
8
|
+
/**
|
|
9
|
+
* The deployment whose code this execution runs.
|
|
10
|
+
*/
|
|
6
11
|
deployment: IModelReference;
|
|
12
|
+
/**
|
|
13
|
+
* The environment this execution runs in.
|
|
14
|
+
*/
|
|
7
15
|
environment: IModelReference;
|
|
8
16
|
/**
|
|
9
17
|
* A set of environment variables to be passed to the Docker container.
|
|
@@ -13,5 +21,8 @@ export declare class ExecutionSchema {
|
|
|
13
21
|
environmentVariables: {
|
|
14
22
|
[key: string]: string;
|
|
15
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* The subnet this execution is placed in. It must belong to the same region as the environment.
|
|
26
|
+
*/
|
|
16
27
|
subnet: IModelReference;
|
|
17
28
|
}
|
|
@@ -10,11 +10,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Validate } from '../../decorators/validate.decorator.js';
|
|
11
11
|
import { Schema } from '../../functions/schema/schema.js';
|
|
12
12
|
/**
|
|
13
|
+
* Schema of the {@link Execution} model.
|
|
14
|
+
*
|
|
13
15
|
* @group Models/Execution
|
|
14
16
|
*/
|
|
15
17
|
export class ExecutionSchema {
|
|
16
18
|
constructor() {
|
|
19
|
+
/**
|
|
20
|
+
* The deployment whose code this execution runs.
|
|
21
|
+
*/
|
|
17
22
|
this.deployment = Schema();
|
|
23
|
+
/**
|
|
24
|
+
* The environment this execution runs in.
|
|
25
|
+
*/
|
|
18
26
|
this.environment = Schema();
|
|
19
27
|
/**
|
|
20
28
|
* A set of environment variables to be passed to the Docker container.
|
|
@@ -22,6 +30,9 @@ export class ExecutionSchema {
|
|
|
22
30
|
* option while running a Docker container.
|
|
23
31
|
*/
|
|
24
32
|
this.environmentVariables = Schema();
|
|
33
|
+
/**
|
|
34
|
+
* The subnet this execution is placed in. It must belong to the same region as the environment.
|
|
35
|
+
*/
|
|
25
36
|
this.subnet = Schema();
|
|
26
37
|
}
|
|
27
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.schema.js","sourceRoot":"","sources":["../../../src/models/execution/execution.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG1D
|
|
1
|
+
{"version":3,"file":"execution.schema.js","sourceRoot":"","sources":["../../../src/models/execution/execution.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG1D;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAA5B;QACE;;WAEG;QACH,eAAU,GAAG,MAAM,EAAmB,CAAC;QAEvC;;WAEG;QACH,gBAAW,GAAG,MAAM,EAAmB,CAAC;QAExC;;;;WAIG;QAOH,yBAAoB,GAAG,MAAM,EAA6B,CAAC;QAE3D;;WAEG;QACH,WAAM,GAAG,MAAM,EAAmB,CAAC;IACrC,CAAC;CAAA;AANC;IANC,QAAQ,CAAC;QACR,QAAQ,EAAE,CAAC,KAAgC,EAAY,EAAE;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE;KAC/E,CAAC;;6DACyD"}
|
|
@@ -2,12 +2,38 @@ import type { UnknownModel } from '../../app.type.js';
|
|
|
2
2
|
import { AModel } from '../model.abstract.js';
|
|
3
3
|
import { FilesystemSchema } from './filesystem.schema.js';
|
|
4
4
|
/**
|
|
5
|
+
* A Filesystem model is a network filesystem shared by the executions of a region.
|
|
6
|
+
* It exists so that state which must outlive a container - uploads, caches, shared data - has somewhere to live.
|
|
7
|
+
*
|
|
8
|
+
* A filesystem belongs to one {@link Region}. Mounting it into a {@link Subnet} is the job of a module,
|
|
9
|
+
* e.g. `AwsSimpleSubnetModule` via its `localFilesystems` input.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const filesystem = new Filesystem('shared-uploads');
|
|
14
|
+
* region.addFilesystem(filesystem);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
5
17
|
* @group Models/Filesystem
|
|
18
|
+
*
|
|
19
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
6
20
|
*/
|
|
7
21
|
export declare class Filesystem extends AModel<FilesystemSchema, Filesystem> {
|
|
8
22
|
readonly filesystemName: string;
|
|
23
|
+
/**
|
|
24
|
+
* @param filesystemName The name of the filesystem, unique within its region.
|
|
25
|
+
*/
|
|
9
26
|
constructor(filesystemName: string);
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
static unSynth(filesystem: FilesystemSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Filesystem>;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
10
34
|
setContext(): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
11
38
|
synth(): FilesystemSchema;
|
|
12
|
-
static unSynth(filesystem: FilesystemSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Filesystem>;
|
|
13
39
|
}
|
|
@@ -13,13 +13,40 @@ import { Model } from '../../decorators/model.decorator.js';
|
|
|
13
13
|
import { AModel } from '../model.abstract.js';
|
|
14
14
|
import { FilesystemSchema } from './filesystem.schema.js';
|
|
15
15
|
/**
|
|
16
|
+
* A Filesystem model is a network filesystem shared by the executions of a region.
|
|
17
|
+
* It exists so that state which must outlive a container - uploads, caches, shared data - has somewhere to live.
|
|
18
|
+
*
|
|
19
|
+
* A filesystem belongs to one {@link Region}. Mounting it into a {@link Subnet} is the job of a module,
|
|
20
|
+
* e.g. `AwsSimpleSubnetModule` via its `localFilesystems` input.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* const filesystem = new Filesystem('shared-uploads');
|
|
25
|
+
* region.addFilesystem(filesystem);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
16
28
|
* @group Models/Filesystem
|
|
29
|
+
*
|
|
30
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
17
31
|
*/
|
|
18
32
|
let Filesystem = Filesystem_1 = class Filesystem extends AModel {
|
|
33
|
+
/**
|
|
34
|
+
* @param filesystemName The name of the filesystem, unique within its region.
|
|
35
|
+
*/
|
|
19
36
|
constructor(filesystemName) {
|
|
20
37
|
super();
|
|
21
38
|
this.filesystemName = filesystemName;
|
|
22
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
static async unSynth(filesystem, deReferenceContext) {
|
|
44
|
+
assert(!!deReferenceContext);
|
|
45
|
+
return new Filesystem_1(filesystem.filesystemName);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
23
50
|
setContext() {
|
|
24
51
|
const parents = this.getParents();
|
|
25
52
|
const region = parents['region']?.[0]?.to;
|
|
@@ -28,15 +55,14 @@ let Filesystem = Filesystem_1 = class Filesystem extends AModel {
|
|
|
28
55
|
}
|
|
29
56
|
return [`${this.constructor.NODE_NAME}=${this.filesystemName}`, region.getContext()].join(',');
|
|
30
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
31
61
|
synth() {
|
|
32
62
|
return {
|
|
33
63
|
filesystemName: this.filesystemName,
|
|
34
64
|
};
|
|
35
65
|
}
|
|
36
|
-
static async unSynth(filesystem, deReferenceContext) {
|
|
37
|
-
assert(!!deReferenceContext);
|
|
38
|
-
return new Filesystem_1(filesystem.filesystemName);
|
|
39
|
-
}
|
|
40
66
|
};
|
|
41
67
|
Filesystem = Filesystem_1 = __decorate([
|
|
42
68
|
Model('@octo', 'filesystem', FilesystemSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.model.js","sourceRoot":"","sources":["../../../src/models/filesystem/filesystem.model.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"filesystem.model.js","sourceRoot":"","sources":["../../../src/models/filesystem/filesystem.model.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,MAAoC;IAGlE;;OAEG;IACH,YAAY,cAAsB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,UAA4B,EAC5B,kBAA8D;QAE9D,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE7B,OAAO,IAAI,YAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACM,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,GAAI,IAAI,CAAC,WAAiC,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAC9G,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;OAEG;IACM,KAAK;QACZ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AA7CY,UAAU;IADtB,KAAK,CAAa,OAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;;GAC9C,UAAU,CA6CtB"}
|
|
@@ -10,10 +10,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Validate } from '../../decorators/validate.decorator.js';
|
|
11
11
|
import { Schema } from '../../functions/schema/schema.js';
|
|
12
12
|
/**
|
|
13
|
+
* Schema of the {@link Filesystem} model.
|
|
14
|
+
*
|
|
13
15
|
* @group Models/Filesystem
|
|
14
16
|
*/
|
|
15
17
|
export class FilesystemSchema {
|
|
16
18
|
constructor() {
|
|
19
|
+
/**
|
|
20
|
+
* The name of the filesystem, unique within its {@link Region}.
|
|
21
|
+
*/
|
|
17
22
|
this.filesystemName = Schema();
|
|
18
23
|
}
|
|
19
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.schema.js","sourceRoot":"","sources":["../../../src/models/filesystem/filesystem.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"filesystem.schema.js","sourceRoot":"","sources":["../../../src/models/filesystem/filesystem.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACE;;WAEG;QAEH,mBAAc,GAAG,MAAM,EAAU,CAAC;IACpC,CAAC;CAAA;AADC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;wDAC3D"}
|
|
@@ -2,13 +2,14 @@ import type { UnknownModel } from '../../app.type.js';
|
|
|
2
2
|
import { AModel } from '../model.abstract.js';
|
|
3
3
|
import { ImageSchema } from './image.schema.js';
|
|
4
4
|
/**
|
|
5
|
-
* An Image model represents a Docker image, to either build, or run, your
|
|
5
|
+
* An Image model represents a Docker image, to either build, or run, your services.
|
|
6
|
+
* Images belong to an {@link Account}: an image is used only inside the account it sits in, and is
|
|
7
|
+
* linked to each of its regions it is published into.
|
|
6
8
|
*
|
|
7
9
|
* @example
|
|
8
10
|
* ```ts
|
|
9
|
-
* const image = new Image('nginx', '2.4'
|
|
10
|
-
*
|
|
11
|
-
* const image = new Image('docker/hello-world', '1.0', { dockerfilePath: './Dockerfile' });
|
|
11
|
+
* const image = new Image('nginx', '2.4');
|
|
12
|
+
* account.addImage(image);
|
|
12
13
|
* ```
|
|
13
14
|
*
|
|
14
15
|
* @group Models/Image
|
|
@@ -19,8 +20,21 @@ export declare class Image extends AModel<ImageSchema, Image> {
|
|
|
19
20
|
readonly imageFamily: string;
|
|
20
21
|
readonly imageId: string;
|
|
21
22
|
readonly imageName: string;
|
|
23
|
+
/**
|
|
24
|
+
* @param imageFamily The repository name shared by all versions of this image.
|
|
25
|
+
* @param imageName The version or tag of this image within its family.
|
|
26
|
+
*/
|
|
22
27
|
constructor(imageFamily: string, imageName: string);
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
static unSynth(image: ImageSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Image>;
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
23
35
|
setContext(): string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
24
39
|
synth(): ImageSchema;
|
|
25
|
-
static unSynth(image: ImageSchema, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Image>;
|
|
26
40
|
}
|
|
@@ -13,13 +13,14 @@ import { Model } from '../../decorators/model.decorator.js';
|
|
|
13
13
|
import { AModel } from '../model.abstract.js';
|
|
14
14
|
import { ImageSchema } from './image.schema.js';
|
|
15
15
|
/**
|
|
16
|
-
* An Image model represents a Docker image, to either build, or run, your
|
|
16
|
+
* An Image model represents a Docker image, to either build, or run, your services.
|
|
17
|
+
* Images belong to an {@link Account}: an image is used only inside the account it sits in, and is
|
|
18
|
+
* linked to each of its regions it is published into.
|
|
17
19
|
*
|
|
18
20
|
* @example
|
|
19
21
|
* ```ts
|
|
20
|
-
* const image = new Image('nginx', '2.4'
|
|
21
|
-
*
|
|
22
|
-
* const image = new Image('docker/hello-world', '1.0', { dockerfilePath: './Dockerfile' });
|
|
22
|
+
* const image = new Image('nginx', '2.4');
|
|
23
|
+
* account.addImage(image);
|
|
23
24
|
* ```
|
|
24
25
|
*
|
|
25
26
|
* @group Models/Image
|
|
@@ -27,20 +28,37 @@ import { ImageSchema } from './image.schema.js';
|
|
|
27
28
|
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
28
29
|
*/
|
|
29
30
|
let Image = Image_1 = class Image extends AModel {
|
|
31
|
+
/**
|
|
32
|
+
* @param imageFamily The repository name shared by all versions of this image.
|
|
33
|
+
* @param imageName The version or tag of this image within its family.
|
|
34
|
+
*/
|
|
30
35
|
constructor(imageFamily, imageName) {
|
|
31
36
|
super();
|
|
32
37
|
this.imageFamily = imageFamily;
|
|
33
38
|
this.imageId = `${imageFamily}/${imageName}`;
|
|
34
39
|
this.imageName = imageName;
|
|
35
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
static async unSynth(image, deReferenceContext) {
|
|
45
|
+
assert(!!deReferenceContext);
|
|
46
|
+
return new Image_1(image.imageFamily, image.imageName);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
36
51
|
setContext() {
|
|
37
52
|
const parents = this.getParents();
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
53
|
+
const account = parents['account']?.[0]?.to;
|
|
54
|
+
if (!account) {
|
|
40
55
|
return undefined;
|
|
41
56
|
}
|
|
42
|
-
return [`${this.constructor.NODE_NAME}=${this.imageId}`,
|
|
57
|
+
return [`${this.constructor.NODE_NAME}=${this.imageId}`, account.getContext()].join(',');
|
|
43
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
44
62
|
synth() {
|
|
45
63
|
return {
|
|
46
64
|
imageFamily: this.imageFamily,
|
|
@@ -48,10 +66,6 @@ let Image = Image_1 = class Image extends AModel {
|
|
|
48
66
|
imageName: this.imageName,
|
|
49
67
|
};
|
|
50
68
|
}
|
|
51
|
-
static async unSynth(image, deReferenceContext) {
|
|
52
|
-
assert(!!deReferenceContext);
|
|
53
|
-
return new Image_1(image.imageFamily, image.imageName);
|
|
54
|
-
}
|
|
55
69
|
};
|
|
56
70
|
Image = Image_1 = __decorate([
|
|
57
71
|
Model('@octo', 'image', ImageSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.model.js","sourceRoot":"","sources":["../../../src/models/image/image.model.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"image.model.js","sourceRoot":"","sources":["../../../src/models/image/image.model.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AAEI,IAAM,KAAK,aAAX,MAAM,KAAM,SAAQ,MAA0B;IAOnD;;;OAGG;IACH,YAAY,WAAmB,EAAE,SAAiB;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,KAAkB,EAClB,kBAA8D;QAE9D,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE7B,OAAO,IAAI,OAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACM,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,GAAI,IAAI,CAAC,WAA4B,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7G,CAAC;IAED;;OAEG;IACM,KAAK;QACZ,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF,CAAA;AApDY,KAAK;IADjB,KAAK,CAAQ,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC;;GAC/B,KAAK,CAoDjB"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Schema of the {@link Image} model.
|
|
3
|
+
*
|
|
2
4
|
* @group Models/Image
|
|
3
5
|
*/
|
|
4
6
|
export declare class ImageSchema {
|
|
7
|
+
/**
|
|
8
|
+
* The family this image belongs to, i.e. the repository name shared by all of its versions.
|
|
9
|
+
*/
|
|
5
10
|
imageFamily: string;
|
|
6
11
|
/**
|
|
7
12
|
* An imageId is the unique identifier for this image.
|
|
8
13
|
* - Format of imageId is `{imageFamily}/{imageName}`
|
|
9
14
|
*/
|
|
10
15
|
imageId: string;
|
|
16
|
+
/**
|
|
17
|
+
* The name of this image within its family, i.e. its version or tag.
|
|
18
|
+
*/
|
|
11
19
|
imageName: string;
|
|
12
20
|
}
|
|
@@ -10,16 +10,24 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import { Validate } from '../../decorators/validate.decorator.js';
|
|
11
11
|
import { Schema } from '../../functions/schema/schema.js';
|
|
12
12
|
/**
|
|
13
|
+
* Schema of the {@link Image} model.
|
|
14
|
+
*
|
|
13
15
|
* @group Models/Image
|
|
14
16
|
*/
|
|
15
17
|
export class ImageSchema {
|
|
16
18
|
constructor() {
|
|
19
|
+
/**
|
|
20
|
+
* The family this image belongs to, i.e. the repository name shared by all of its versions.
|
|
21
|
+
*/
|
|
17
22
|
this.imageFamily = Schema();
|
|
18
23
|
/**
|
|
19
24
|
* An imageId is the unique identifier for this image.
|
|
20
25
|
* - Format of imageId is `{imageFamily}/{imageName}`
|
|
21
26
|
*/
|
|
22
27
|
this.imageId = Schema();
|
|
28
|
+
/**
|
|
29
|
+
* The name of this image within its family, i.e. its version or tag.
|
|
30
|
+
*/
|
|
23
31
|
this.imageName = Schema();
|
|
24
32
|
}
|
|
25
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.schema.js","sourceRoot":"","sources":["../../../src/models/image/image.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"image.schema.js","sourceRoot":"","sources":["../../../src/models/image/image.schema.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,OAAO,WAAW;IAAxB;QACE;;WAEG;QAEH,gBAAW,GAAG,MAAM,EAAU,CAAC;QAE/B;;;WAGG;QACH,YAAO,GAAG,MAAM,EAAU,CAAC;QAE3B;;WAEG;QAEH,cAAS,GAAG,MAAM,EAAU,CAAC;IAC/B,CAAC;CAAA;AAbC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,CAAC;;gDAClE;AAY/B;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,CAAC;;8CACnE"}
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import type { ActionOutputs, EnhancedModuleSchema, UnknownModule } from '../app.type.js';
|
|
2
2
|
import type { Diff } from '../functions/diff/diff.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* A model action translates a change in intent into resources.
|
|
5
|
+
*
|
|
6
|
+
* Octo diffs your models, and for every {@link Diff} it produces it asks each registered action
|
|
7
|
+
* whether the diff is its concern. The actions that accept it declare the resources that change
|
|
8
|
+
* has to bring about. This is the only place a model becomes infrastructure.
|
|
9
|
+
*
|
|
10
|
+
* Register the class with {@link Action}, and a {@link Factory} to construct it.
|
|
6
11
|
*
|
|
7
12
|
* @group Models
|
|
13
|
+
*
|
|
14
|
+
* @see Definition of [Actions](/docs/fundamentals/actions).
|
|
8
15
|
*/
|
|
9
16
|
export interface IModelAction<T extends UnknownModule> {
|
|
10
17
|
/**
|
|
11
|
-
*
|
|
18
|
+
* Whether this action handles the given diff.
|
|
19
|
+
* Typically a check on the diff's node, field, and action.
|
|
12
20
|
*/
|
|
13
21
|
filter(diff: Diff): boolean;
|
|
14
22
|
/**
|
|
15
|
-
*
|
|
23
|
+
* Declares the resources this diff calls for.
|
|
24
|
+
*
|
|
25
|
+
* @param diff The diff that passed {@link IModelAction.filter}.
|
|
26
|
+
* @param actionInputs The module's inputs, metadata, and the nodes it produced.
|
|
27
|
+
* @param actionOutputs The resources declared so far by earlier actions in this transaction.
|
|
28
|
+
* @returns `actionOutputs`, with this action's resources added.
|
|
16
29
|
*/
|
|
17
30
|
handle(diff: Diff, actionInputs: EnhancedModuleSchema<T>, actionOutputs: ActionOutputs): Promise<ActionOutputs>;
|
|
18
31
|
}
|