Skip to main content

Project configuration

You can configure project-wide settings in a takomo.yml file that you place in the project root directory.

Required Takomo version

You specify the required Takomo version with the requiredVersion property. It accepts a NPM semver compatible version range.

Example

Require Takomo version 3.4.0 or above:

takomo.yml
requiredVersion: ">=3.4.0"

Allowed regions

By default, the supported regions are hardcoded in Takomo's codebase. A new Takomo version is released whenever AWS launches new regions. In case you need to use an older Takomo version that does not include some regions launched after its release, you may specify the missing regions yourself using this property.

You can also use this property to list only the regions you intend to use to prevent deploys to any other region.

Example

Allow only these four regions:

takomo.yml
regions:
- us-east-1
- eu-west-1
- eu-central-1
- eu-north-1

Feature flags

You can enable and disable certain Takomo features by specifying feature flags under the features property.

Here are the available feature flags:

FlagDescription
deploymentTargetsUndeploySet false to disable undeploy deployment targets command.

You might want to disable this command to add an extra confirmation step to prevent removing targets unintentionally.

You can override this setting by giving --feature deploymentTargetsUndeploy=true option from command-line when executing undeploy deployment targets command.
deploymentTargetsTearDownSet false to disable tear down deployment targets command.

You might want to disable this command to add an extra confirmation step to prevent removing targets unintentionally.

You can override this setting by giving --feature deploymentTargetsTearDown=true option from command-line when executing tear down deployment targets command.

Example

Disable undeploy deployment targets command:

takomo.yml
features:
deploymentTargetsUndeploy: false

Extending project configuration

You can make a Takomo project configuration file to inherit configuration from another file. Inheriting configuration becomes useful, for example, when you have a monorepo containing multiple Takomo projects, each having its own configuration and sharing some common properties with others. You can place the common properties in a parent file that others then inherit.

You use the extends property to make a project configuration file inherit configuration from another file:

takomo.yml
extends: ../my-parent-config.yml

Typescript support

By default, Takomo looks for a takomo.ts file, which can be used to customize Takomo configuration, from the project root dir. If the file is found, it's compiled with esbuild, and then run to apply customizations it contains.

You can customize this feature by providing esbuild property. It has the following properties:

PropertyDescriptionRequiredDefault
enabledToggle esbuild and Typescript feature on or offnotrue
outFileName of the file where compiled Typescript code is writtennotakomo.ts
entryPointInput entry point file for esbuildno.takomo/out/takomo.js

Example

Use different entry point file.

takomo.yml
esbuild:
entryPoint: src/index.ts