Const
Optional
Readonly
allowAllow the project to include peerDependencies
and bundledDependencies
.
This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.
Optional
Readonly
appThe CDK app's entrypoint (relative to the source directory, which is "src" by default).
Optional
Readonly
artifactsA directory which will contain build artifacts.
Optional
authorOptional
authorOptional
authorOptional
authorOptional
Readonly
autoEnable and configure the 'auto approve' workflow.
Optional
Readonly
autoAutomatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions
are not defined.
Optional
Readonly
autoAutomatically add all executables under the bin
directory to your
package.json
file under the bin
section.
Optional
Readonly
autoEnable automatic merging on GitHub. Has no effect if github.mergify
is set to false.
Optional
Readonly
autoConfigure options for automatic merging on GitHub. Has no effect if
github.mergify
or autoMerge
is set to false.
Optional
Readonly
bin?: Record<string, string>Binary programs vended with your module.
You can use this option to add/customize how binaries are represented in
your package.json
, but unless autoDetectBin
is false
, every
executable file under bin
will automatically be added to this section.
Optional
Readonly
bugsThe email address to which issues should be reported.
Optional
Readonly
bugsThe url to your project's issue tracker.
Optional
Readonly
buildA command to execute before synthesis. This command will be called when
running cdk synth
or when cdk watch
identifies a change in your source
code before redeployment.
Optional
Readonly
buildDefine a GitHub workflow for building PRs.
Optional
Readonly
buildOptions for PR build workflow.
Optional
Readonly
buildBuild workflow triggers
Optional
Readonly
bundledList of dependencies to bundle into this module. These modules will be
added both to the dependencies
section and bundledDependencies
section of
your package.json
.
The recommendation is to only specify the module name here (e.g.
express
). This will behave similar to yarn add
or npm install
in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^
). You can specify semver requirements in
the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
this will be what you package.json
will eventually include.
Optional
Readonly
bundlerOptions for Bundler
.
Optional
Readonly
cdkWarning: NodeJS only. Install the @aws-cdk/assert library?
Optional
Readonly
cdkInstall the assertions library?
Only needed for CDK 1.x. If using CDK 2.x then assertions is already included in 'aws-cdk-lib'
Optional
Readonly
cdkWhich AWS CDKv1 modules this project requires
Optional
Readonly
cdkIf this is enabled (default), all modules declared in cdkDependencies
will be also added as
normal dependencies
(as well as peerDependencies
).
This is to ensure that downstream consumers actually have your CDK dependencies installed
when using npm < 7 or yarn, where peer dependencies are not automatically installed.
If this is disabled, cdkDependencies
will be added to devDependencies
to ensure
they are present during development.
Note: this setting only applies to construct library projects
Optional
Readonly
cdkAWS CDK modules required for testing.
Readonly
cdkMinimum version of the AWS CDK to depend on.
Optional
Readonly
cdkUse pinned version instead of caret version for CDK.
You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates. If you use experimental features this will let you define the moment you include breaking changes.
Optional
Readonly
cdkout?: stringcdk.out directory.
Optional
Readonly
checkConfigure which licenses should be deemed acceptable for use by dependencies
This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.
Optional
Readonly
clobber?: booleanAdd a clobber
task which resets the repo to origin.
Optional
Readonly
codeOptions for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
Optional
Readonly
codeDefine a GitHub workflow step for sending code coverage metrics to https://codecov.io/
Uses codecov/codecov-action@v4
A secret is required for private repos. Configured with @codeCovTokenSecret
Optional
Readonly
codeDefine the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories
Optional
Readonly
commitWhether to commit the managed files by default.
Optional
Readonly
constructsMinimum version of the constructs
library to depend on.
Optional
Readonly
context?: { Additional context to include in cdk.json
.
Optional
Readonly
copyrightLicense copyright owner.
Optional
Readonly
copyrightThe copyright years to put in the LICENSE file.
Optional
defaultOptional
Readonly
dependabot?: booleanUse dependabot to handle dependency upgrades.
Cannot be used in conjunction with depsUpgrade
.
Optional
Readonly
dependabotOptions for dependabot.
Optional
Readonly
deps?: string[]Runtime dependencies of this module.
The recommendation is to only specify the module name here (e.g.
express
). This will behave similar to yarn add
or npm install
in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^
). You can specify semver requirements in
the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
this will be what you package.json
will eventually include.
Optional
Readonly
depsUse tasks and github workflows to handle dependency upgrades.
Cannot be used in conjunction with dependabot
.
Optional
Readonly
depsOptions for UpgradeDependencies
.
Optional
Readonly
description?: stringThe description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
Optional
Readonly
devAdd a VSCode development environment (used for GitHub Codespaces)
Optional
Readonly
devBuild dependencies for this module. These dependencies will only be available in your build environment but will not be fetched when this module is consumed.
The recommendation is to only specify the module name here (e.g.
express
). This will behave similar to yarn add
or npm install
in the
sense that it will add the module as a dependency to your package.json
file with the latest version (^
). You can specify semver requirements in
the same syntax passed to npm i
or yarn add
(e.g. express@^2
) and
this will be what you package.json
will eventually include.
Optional
Readonly
disableDo not generate a tsconfig.json
file (used by jsii projects since
tsconfig.json is generated by the jsii compiler).
Optional
Readonly
disableDo not generate a tsconfig.dev.json
file.
Optional
Readonly
docgen?: booleanDocgen by Typedoc
Optional
Readonly
docsDocs directory
Optional
Readonly
edgeAutomatically adds an cloudfront.experimental.EdgeFunction
for each
.edge-lambda.ts
handler in your source tree. If this is disabled, you can
manually add an awscdk.AutoDiscover
component to your project.
Optional
entrypoint?: stringOptional
entrypointOptional
Readonly
eslint?: booleanSetup eslint.
Optional
Readonly
eslintEslint options
Optional
Readonly
Experimental
experimentalEnable experimental support for the AWS CDK integ-runner.
Optional
Readonly
featureInclude all feature flags in cdk.json
Optional
Readonly
gitConfiguration options for .gitignore file
Optional
Readonly
gitConfiguration options for git
Optional
Readonly
github?: booleanEnable GitHub integration.
Enabled by default for root projects. Disabled for non-root projects.
Optional
Readonly
githubOptions for GitHub integration
Optional
Readonly
gitignore?: string[]Additional entries to .gitignore
Optional
Readonly
gitpod?: booleanAdd a Gitpod development environment
Optional
Readonly
homepage?: stringPackage's Homepage / Website
Optional
Readonly
integrationAutomatically discovers and creates integration tests for each .integ.ts
file in under your test directory.
Optional
jest?: falseOptional
Readonly
jestJest options
Optional
Readonly
jsiiVersion requirement of publib
which is used to publish modules to npm.
Optional
Readonly
keywords?: string[]Keywords to include in package.json
.
Optional
Readonly
lambdaAutomatically adds an awscdk.LambdaFunction
for each .lambda.ts
handler
in your source tree. If this is disabled, you can manually add an
awscdk.AutoDiscover
component to your project.
Optional
Readonly
lambdaAutomatically adds an awscdk.LambdaExtension
for each .lambda-extension.ts
entrypoint in your source tree. If this is disabled, you can manually add an
awscdk.AutoDiscover
component to your project
Optional
Readonly
lambdaCommon options for all AWS Lambda functions.
Optional
libdir?: stringOptional
Readonly
license?: stringLicense's SPDX identifier.
See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the licensed
option if you want to no license to be specified.
Optional
Readonly
licensed?: booleanIndicates if a license should be added.
Optional
logging?: { Optional
Readonly
majorMajor version to release from the default branch.
If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version.
Optional
Readonly
maxMinimum node.js version to require via engines
(inclusive).
Optional
Readonly
mergify?: booleanWhether mergify should be enabled on this repository or not.
Optional
Readonly
mergifyOptions for mergify
Optional
Readonly
minMinimal Major version to release
This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number.
Can not be set together with majorVersion
.
Optional
Readonly
minMinimum Node.js version to require via package.json engines
(inclusive).
Optional
Readonly
mutableAutomatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged.
Implies that PR builds do not have anti-tamper checks.
Readonly
name: stringThis is the name of your project.
Optional
npmOptional
Readonly
npmThe npmDistTag to use when publishing from the default branch.
To set the npm dist-tag for release branches, set the npmDistTag
property
for each branch.
Optional
Readonly
npmConfiguration options for .npmignore file
Optional
Readonly
npmShould provenance statements be generated when the package is published.
A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider.
Note that the projen Release
and Publisher
components are using publib
to publish packages,
which is using npm internally and supports provenance statements independently of the package manager used.
https://docs.npmjs.com/generating-provenance-statements
- true for public packages, false otherwise
Optional
Readonly
npmThe host name of the npm registry to publish to. Cannot be set together with npmRegistryUrl
.
Optional
Readonly
npmThe base URL of the npm package registry.
Must be a URL (e.g. start with "https://" or "http://")
Optional
Readonly
npmGitHub secret which contains the NPM token to use when publishing packages.
Optional
Readonly
npmignore?: string[]Additional entries to .npmignore.
Optional
Readonly
npmignoreDefines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
Optional
Readonly
outdir?: stringThe root directory of the project.
Relative to this directory, all files are synthesized.
If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other subprojects.
Optional
Readonly
package?: booleanDefines a package
task that will produce an npm tarball under the
artifacts directory (e.g. dist
).
Optional
packageOptional
Readonly
packageThe "name" in package.json
Optional
Readonly
parent?: ProjectThe parent project, if this project is part of a bigger project.
Optional
Readonly
peerOptions for peerDeps
.
Optional
Readonly
peerPeer dependencies for this module. Dependencies listed here are required to
be installed (and satisfied) by the consumer of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the node_modules
tree of your consumers.
Note that prior to npm@7, peer dependencies are not automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers.
Unless peerDependencyOptions.pinnedDevDependency
is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.
Optional
pnpmOptional
Readonly
postSteps to execute after build as part of the release workflow.
Optional
Readonly
prerelease?: stringBump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
Optional
prettier?: trueOptional
Readonly
prettierPrettier options
Optional
Readonly
projectWhich type of project this is (library/app).
Optional
projenOptional
Readonly
projenChoose a method of providing GitHub API access for projen workflows.
Optional
projenOptional
Readonly
projenThe name of a secret which includes a GitHub Personal Access Token to be
used by projen workflows. This token needs to have the repo
, workflows
and packages
scope.
Optional
Readonly
projenVersion of projen to install.
Optional
Readonly
projenrcGenerate (once) .projenrc.js (in JavaScript). Set to false
in order to disable
.projenrc.js generation.
Optional
Readonly
projenrcOptions for .projenrc.js
Optional
Readonly
projenrcGenerate (once) .projenrc.json (in JSON). Set to false
in order to disable
.projenrc.json generation.
Optional
Readonly
projenrcOptions for .projenrc.json
Optional
projenrcOptional
Readonly
projenrcOptions for .projenrc.ts
Optional
Readonly
publishInstead of actually publishing to package managers, just print the publishing command.
Optional
Readonly
publishDefine publishing tasks that can be executed manually as well as workflows.
Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity.
Optional
Readonly
pullInclude a GitHub pull request template.
Optional
Readonly
pullThe contents of the pull request template.
Optional
Readonly
readme?: SampleReadmePropsThe README setup.
Optional
Readonly
releasableFind commits that should be considered releasable Used to decide if a release is required.
Optional
release?: trueOptional
Readonly
releaseDefines additional release branches. A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch must be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the majorVersion
field must also
be provided for the default branch.
addBranch()
to add additional branches.Optional
Readonly
releaseAutomatically release new versions every commit to one of branches in releaseBranches
.
Optional
Readonly
releaseCreate a github issue on every failed publishing task.
Optional
Readonly
releaseThe label to apply to issues indicating publish failures.
Only applies if releaseFailureIssue
is true.
Optional
Readonly
releaseCRON schedule to trigger new releases.
Optional
Readonly
releaseAutomatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.
Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix.
Optional
releaseOptional
Readonly
releaseThe release trigger to use.
Optional
Readonly
releaseDEPRECATED: renamed to release
.
Optional
Readonly
releaseThe name of the default release workflow.
Optional
Readonly
releaseA set of workflow steps to execute in order to setup the workflow container.
Optional
Readonly
renovatebot?: booleanUse renovatebot to handle dependency upgrades.
Optional
Readonly
renovatebotOptions for renovatebot.
Optional
Readonly
repository?: stringThe repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
Optional
Readonly
repositoryIf the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.
Optional
Readonly
requireTo protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them.
Optional
Readonly
sampleGenerate one-time sample in src/
and test/
if there are no files there.
Optional
Readonly
scopedOptions for privately hosted scoped packages
Optional
Readonly
scripts?: { npm scripts to include. If a script has the same name as a standard script, the standard script will be overwritten. Also adds the script as a task.
Optional
Readonly
srcdir?: stringTypescript sources directory.
Optional
Readonly
stability?: stringPackage's Stability
Optional
Readonly
stale?: booleanAuto-close of stale issues and pull request. See staleOptions
for options.
Optional
Readonly
staleAuto-close stale issues and pull requests. To disable set stale
to false
.
Optional
Readonly
testdir?: stringJest tests directory. Tests files should be named xxx.test.ts
.
If this directory is under srcdir
(e.g. src/test
, src/__tests__
),
then tests are going to be compiled into lib/
and executed as javascript.
If the test directory is outside of src
, then we configure jest to
compile the code in-memory.
Optional
Readonly
tsOptions for ts-jest
Optional
Readonly
tsconfig?: TypescriptConfigOptionsCustom TSConfig
Optional
Readonly
tsconfigOptional
Readonly
tsconfigCustom tsconfig options for the development tsconfig.json file (used for testing).
Optional
Readonly
tsconfigThe name of the development tsconfig.json file.
Optional
typescriptOptional
Readonly
unbuild?: booleanOptional
Readonly
unbuildOptional
Readonly
versionrcCustom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it.
Optional
Readonly
vscode?: booleanEnable VSCode integration.
Enabled by default for root projects. Disabled for non-root projects.
Optional
Readonly
watchGlob patterns to exclude from cdk watch
.
Optional
Readonly
watchGlob patterns to include in cdk watch
.
Optional
Readonly
workflowWorkflow steps to use in order to bootstrap this repo.
Optional
Readonly
workflowContainer image to use for GitHub workflows.
Optional
Readonly
workflowThe git identity to use in workflows.
Optional
Readonly
workflowThe node version to use in GitHub workflows.
Optional
Readonly
workflowEnable Node.js package cache in GitHub workflows.
Optional
Readonly
workflowGithub Runner selection labels
Optional
Readonly
workflowGithub Runner Group selection options
Optional
Readonly
workspaceOptional
Readonly
yarnOptions for Yarn Berry
Base awscdk builder with most commonly used steps.