ConstOptional ReadonlyallowAllow the project to include peerDependencies and bundledDependencies.
This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.
Optional ReadonlyartifactsA directory which will contain build artifacts.
Readonlyauthor: stringThe name of the library author.
ReadonlyauthorEmail or URL of the library author.
OptionalauthorOptionalauthorOptionalauthorOptionalauthorOptional ReadonlyautoEnable and configure the 'auto approve' workflow.
Optional ReadonlyautoAutomatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
Throw if set to true but autoApproveOptions are not defined.
Optional ReadonlyautoAutomatically add all executables under the bin directory to your
package.json file under the bin section.
Optional ReadonlyautoEnable automatic merging on GitHub. Has no effect if github.mergify
is set to false.
Optional ReadonlyautoConfigure options for automatic merging on GitHub. Has no effect if
github.mergify or autoMerge is set to false.
Optional Readonlybin?: 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 ReadonlybugsThe email address to which issues should be reported.
Optional ReadonlybugsThe url to your project's issue tracker.
Optional ReadonlybuildDefine a GitHub workflow for building PRs.
Optional ReadonlybuildOptions for PR build workflow.
Optional ReadonlybuildBuild workflow triggers
Optional ReadonlybundledList 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 ReadonlybundlerOptions for Bundler.
Optional Readonlycatalog?: CatalogLibraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:
https://awscdk.io/packages/[@SCOPE/]PACKAGE@VERSION
The catalog will also post a tweet to https://twitter.com/awscdkio with the
package name, description and the above link. You can disable these tweets
through { announce: false }.
You can also add a Twitter handle through { twitter: 'xx' } which will be
mentioned in the tweet.
Optional ReadonlycdkWarning: NodeJS only. Install the @aws-cdk/assert library?
Optional ReadonlycdkInstall the assertions library?
Only needed for CDK 1.x. If using CDK 2.x then assertions is already included in 'aws-cdk-lib'
Optional ReadonlycdkWhich AWS CDKv1 modules this project requires
Optional ReadonlycdkIf 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 ReadonlycdkAWS CDK modules required for testing.
ReadonlycdkMinimum version of the AWS CDK to depend on.
Optional ReadonlycdkUse 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 ReadonlycheckConfigure 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 Readonlyclobber?: booleanAdd a clobber task which resets the repo to origin.
Optional ReadonlycodeOptions for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
Optional ReadonlycodeDefine 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 ReadonlycodeDefine the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories
Optional ReadonlycommitWhether to commit the managed files by default.
Optional Readonlycompat?: booleanAutomatically run API compatibility test against the latest version published to npm after compilation.
yarn compat if this feature is disabled.Optional ReadonlycompatName of the ignore file for API compatibility tests.
Optional ReadonlycompressEmit a compressed version of the assembly
Optional ReadonlyconstructsMinimum version of the constructs library to depend on.
Optional ReadonlycopyrightLicense copyright owner.
Optional ReadonlycopyrightThe copyright years to put in the LICENSE file.
OptionaldefaultOptional Readonlydependabot?: booleanUse dependabot to handle dependency upgrades.
Cannot be used in conjunction with depsUpgrade.
Optional ReadonlydependabotOptions for dependabot.
Optional Readonlydeps?: 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 ReadonlydepsUse tasks and github workflows to handle dependency upgrades.
Cannot be used in conjunction with dependabot.
Optional ReadonlydepsOptions for UpgradeDependencies.
Optional Readonlydescription?: 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 ReadonlydevAdd a VSCode development environment (used for GitHub Codespaces)
Optional ReadonlydevBuild 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 ReadonlydisableDo not generate a tsconfig.json file (used by jsii projects since
tsconfig.json is generated by the jsii compiler).
Optional ReadonlydisableDo not generate a tsconfig.dev.json file.
Optional Readonlydocgen?: booleanDocgen by Typedoc
Optional ReadonlydocgenFile path for generated docs.
Optional ReadonlydocsDocs directory
Optional Readonlydotnet?: JsiiDotNetTargetOptional ReadonlyedgeAutomatically 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.
Optionalentrypoint?: stringOptionalentrypointOptional Readonlyeslint?: booleanSetup eslint.
Optional ReadonlyeslintEslint options
Optional ReadonlyexcludeAccepts a list of glob patterns. Files matching any of those patterns will be excluded from the TypeScript compiler input.
By default, jsii will include all *.ts files (except .d.ts files) in the TypeScript compiler input. This can be problematic for example when the package's build or test procedure generates .ts files that cannot be compiled with jsii's compiler settings.
Optional Readonly ExperimentalexperimentalEnable experimental support for the AWS CDK integ-runner.
Optional ReadonlygitConfiguration options for .gitignore file
Optional ReadonlygitConfiguration options for git
Optional Readonlygithub?: booleanEnable GitHub integration.
Enabled by default for root projects. Disabled for non-root projects.
Optional ReadonlygithubOptions for GitHub integration
Optional Readonlygitignore?: string[]Additional entries to .gitignore
Optional Readonlygitpod?: booleanAdd a Gitpod development environment
Optional Readonlyhomepage?: stringPackage's Homepage / Website
Optional ReadonlyintegrationAutomatically discovers and creates integration tests for each .integ.ts
file under your test directory.
Optionaljest?: falseOptional ReadonlyjestJest options
Optional ReadonlyjsiiVersion requirement of publib which is used to publish modules to npm.
Optional ReadonlyjsiiVersion of the jsii compiler to use.
Set to "*" if you want to manually manage the version of jsii in your
project by managing updates to package.json on your own.
NOTE: The jsii compiler releases since 5.0.0 are not semantically versioned
and should remain on the same minor, so we recommend using a ~ dependency
(e.g. ~5.0.0).
Optional Readonlykeywords?: string[]Keywords to include in package.json.
Optional ReadonlylambdaAutomatically adds an aws_lambda.Function for each .lambda.ts handler
in your source tree. If this is disabled, you either need to explicitly
call aws_lambda.Function.autoDiscover() or define a new aws_lambda.Function() for each handler.
Optional ReadonlylambdaAutomatically 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 ReadonlylambdaCommon options for all AWS Lambda functions.
Optionallibdir?: stringOptional Readonlylicense?: 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 Readonlylicensed?: booleanIndicates if a license should be added.
Optionallogging?: { Optional ReadonlymajorMajor 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 ReadonlymaxMinimum node.js version to require via engines (inclusive).
Optional Readonlymergify?: booleanWhether mergify should be enabled on this repository or not.
Optional ReadonlymergifyOptions for mergify
Optional ReadonlyminMinimal 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 ReadonlyminMinimum Node.js version to require via package.json engines (inclusive).
Optional ReadonlymutableAutomatically 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.
Readonlyname: stringThis is the name of your project.
OptionalnpmOptional ReadonlynpmThe 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 ReadonlynpmConfiguration options for .npmignore file
Optional ReadonlynpmShould 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 ReadonlynpmThe host name of the npm registry to publish to. Cannot be set together with npmRegistryUrl.
Optional ReadonlynpmThe base URL of the npm package registry.
Must be a URL (e.g. start with "https://" or "http://")
Optional ReadonlynpmGitHub secret which contains the NPM token to use when publishing packages.
Optional Readonlynpmignore?: string[]Additional entries to .npmignore.
Optional ReadonlynpmignoreDefines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
Optional Readonlyoutdir?: 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 Readonlypackage?: booleanDefines a package task that will produce an npm tarball under the
artifacts directory (e.g. dist).
OptionalpackageOptional ReadonlypackageThe "name" in package.json
Optional Readonlyparent?: ProjectThe parent project, if this project is part of a bigger project.
Optional ReadonlypeerOptions for peerDeps.
Optional ReadonlypeerPeer 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.
OptionalpnpmOptional ReadonlypostSteps to execute after build as part of the release workflow.
Optional Readonlyprerelease?: stringBump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
Optionalprettier?: trueOptional ReadonlyprettierPrettier options
Optional ReadonlyprojectWhich type of project this is (library/app).
OptionalprojenOptional ReadonlyprojenChoose a method of providing GitHub API access for projen workflows.
OptionalprojenOptional ReadonlyprojenThe 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 ReadonlyprojenVersion of projen to install.
Optional ReadonlyprojenrcGenerate (once) .projenrc.js (in JavaScript). Set to false in order to disable
.projenrc.js generation.
Optional ReadonlyprojenrcOptions for .projenrc.js
Optional ReadonlyprojenrcGenerate (once) .projenrc.json (in JSON). Set to false in order to disable
.projenrc.json generation.
Optional ReadonlyprojenrcOptions for .projenrc.json
OptionalprojenrcOptional ReadonlyprojenrcOptions for .projenrc.ts
Optional ReadonlypublishInstead of actually publishing to package managers, just print the publishing command.
Optional ReadonlypublishDefine 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 ReadonlypublishPublish Go bindings to a git repository.
Optional ReadonlypublishPublish to maven
Optional ReadonlypublishPublish to NuGet
Optional ReadonlypublishPublish to pypi
Optional ReadonlypullInclude a GitHub pull request template.
Optional ReadonlypullThe contents of the pull request template.
Optional Readonlypython?: JsiiPythonTargetOptional Readonlyreadme?: SampleReadmePropsThe README setup.
Optional ReadonlyreleasableFind commits that should be considered releasable Used to decide if a release is required.
Optionalrelease?: trueOptional ReadonlyreleaseDefines 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 ReadonlyreleaseAutomatically release new versions every commit to one of branches in releaseBranches.
Optional ReadonlyreleaseCreate a github issue on every failed publishing task.
Optional ReadonlyreleaseThe label to apply to issues indicating publish failures.
Only applies if releaseFailureIssue is true.
Optional ReadonlyreleaseCRON schedule to trigger new releases.
Optional ReadonlyreleaseAutomatically 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.
OptionalreleaseOptional ReadonlyreleaseThe release trigger to use.
Optional ReadonlyreleaseDEPRECATED: renamed to release.
Optional ReadonlyreleaseThe name of the default release workflow.
Optional ReadonlyreleaseA set of workflow steps to execute in order to setup the workflow container.
Optional Readonlyrenovatebot?: booleanUse renovatebot to handle dependency upgrades.
Optional ReadonlyrenovatebotOptions for renovatebot.
Optional Readonlyrepository?: 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 ReadonlyrepositoryIf 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.
ReadonlyrepositoryGit repository URL.
Optional Readonlyrootdir?: stringOptional ReadonlysampleGenerate one-time sample in src/ and test/ if there are no files there.
Optional ReadonlyscopedOptions for privately hosted scoped packages
Optional Readonlyscripts?: { 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 Readonlysrcdir?: stringTypescript sources directory.
Optional Readonlystability?: stringPackage's Stability
Optional Readonlystale?: booleanAuto-close of stale issues and pull request. See staleOptions for options.
Optional ReadonlystaleAuto-close stale issues and pull requests. To disable set stale to false.
Optional Readonlytestdir?: 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 ReadonlytsOptions for ts-jest
Optional Readonlytsconfig?: TypescriptConfigOptionsCustom TSConfig
Optional ReadonlytsconfigOptional ReadonlytsconfigCustom tsconfig options for the development tsconfig.json file (used for testing).
Optional ReadonlytsconfigThe name of the development tsconfig.json file.
OptionaltypescriptOptional Readonlyunbuild?: booleanOptional ReadonlyunbuildOptional ReadonlyversionrcCustom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it.
Optional Readonlyvscode?: booleanEnable VSCode integration.
Enabled by default for root projects. Disabled for non-root projects.
Optional ReadonlyworkflowWorkflow steps to use in order to bootstrap this repo.
Optional ReadonlyworkflowContainer image to use for GitHub workflows.
Optional ReadonlyworkflowThe git identity to use in workflows.
Optional ReadonlyworkflowThe node version to use in GitHub workflows.
Optional ReadonlyworkflowEnable Node.js package cache in GitHub workflows.
Optional ReadonlyworkflowGithub Runner selection labels
Optional ReadonlyworkflowGithub Runner Group selection options
Optional ReadonlyworkspaceOptional ReadonlyyarnOptions for Yarn Berry
Base awscdk.AwsCdkConstructLibrary builder with most commonly used steps.