Skip to content

Conversation

@aws-cdk-automation
Copy link
Collaborator

see CHANGELOG

iliapolo and others added 30 commits February 25, 2020 19:14
* added additional stack to 'ls' test so it doesn't fail

* allow merging to release with no-squash
* feat(appsync): allow configuring API key authorization mode

By default, the AppSync L2 constructs use API key authorization, but it
doesn't allow configuring the API key.

Fix that by allowing a default authorization mode to be specified.
Currently, the supported modes are Cognito user pools and API keys. When
specifying API key authorization, allow configuring it.

BREAKING CHANGE:
    Configuration the user pool authorization is now done through the
    authorizationConfig property. This allows us to specify a default
    authorization mode out of the supported ones, currently limited to
    Cognito user pools and API keys.

Fixes #6246

Signed-off-by: Duarte Nunes <[email protected]>

* feat(appsync): allow specifying additional authorization modes

Currently the AppSync L2 constructs don't provide a way to configure
additional authorization modes. Add the ability to specify additional
authorization modes, currently limited to Cognito user pools and API
keys.

Fixes #6247

Signed-off-by: Duarte Nunes <[email protected]>

* test(integ.graphql): test cognito and api key authorization

Test using cognito user pools as the default authorization mode and an
api key as the additional mode.

Signed-off-by: Duarte Nunes <[email protected]>

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
)

* add team members to merge rules
* update labels in issue templates
…6445)

* chore: master version in lerna.json (instead of root package.json)

Use lerna.json to master the repo version instead of the root package.json.

Move standard-version configuration to .versionrc.json and consult it when aligning the repo version to determine where the version is mastered.

* scripts/get-version

returns the current repo version, and reused by align-version. then we can use it in our AutoBump build project
instead of hard-coding the fact that lerna.json is where we master the version.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…s a dependency to the CodePipeline stack (#6458)

If you provided a role for an action that belonged to a different stack,
the CodePipeline construct added it as a dependency to the CodePipeline stack.
This was required, as the stack could be in a different environment,
and for those our automatic dependency deduction would not work.

However, the dependency should only be there if the role is a newly created one;
if the role is imported with a fromRoleArn, no dependency should be added
(as it obviously exists already).

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…l characters from stage/action names (#6460)

The set of allowed characters for actions and stages in CodePipeline is wider than for artifacts.
When we automatically derivce the name of the artifact based on what action and stage it belongs to,
we should sanitize the name to get rid of the illegal characters.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…d attrs (#6422)

* Switch to import UserPool based on ARN and Id.

* IUserPool no longer defines provider information as members.

* Rename `SignInType` to `SignInAliases`. Switch from an enum to an
  interface for better modeling. The CDK automatically figures out
  which ones are primary sign in attributes, and which ones are
  aliases.

* `autoVerifiedAttributes` property is now renamed to `autoVerify` with
  a modified type - `AutoVerifiedAttrs`. The attributes to auto-verify
  are computed automatically based on the value specified in
  `SignInAliases` unless explicitly specified.

BREAKING CHANGE: `UserPool.fromUserPoolAttributes()` has been replaced
  by `fromUserPoolId()` and `fromUserPoolArn()`.
* **cognito:** `IUserPool` no longer contains `userPoolProviderName`
  and `userPoolProviderUrl`.
* **cognito:** The property `signInType` of `UserPool` has been
  renamed to `signInAliases` and given a new type `SignInAliases`. The
  list of sign in types are now specified via boolean properties.
* **cognito:** The property `usernameAliasAttributes` of `UserPool` has
  been dropped and its functionality merged with the `signInAliases`
  property.
* **cognito:** The property `autoVerifiedAttributes` for `UserPool` is
  now renamed to `autoVerify` and its default has now changed. The new
  default is now determined by the value of `signInAliases`.
Add an optional `masterSecret` prop in `DatabaseSecret` and clarify documentation
for the multi user rotation schema.

Related to #6358

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Please see updates in [CONTRIBUTING](https://github.com/aws/aws-cdk/pull/6463/files#diff-6a3371457528722a734f3c51d9238c13) for details on new versioning schema in this repository.

Replace `999.0.0` with `0.0.0` to reduce the risk in accidental publishing. If, by accident, we will publish a module with the version `999.0.0`, it will semantically always be the latest version, and that’s catastrophic. By using `0.0.0` we reduce this risk. Worse case we will have a `0.0.0` module published, which is not a huge problem.

Codify this in `scripts/get-version-marker` and reuse everywhere, including `pkglint`.

We also improved the `pack.sh` script in the following ways:
- Use `get-version.js` to obtain the version for build.json (instead of reading from lerna.json)
- Fail if the version does not start with “1.” to protect against publishing a different major version
- Adds an additional check to verifies that none of the file names under `dist/` uses the “0.0.0” marker.
Adds overall `throttle` setting to the example documentation on typescript CDK about how to use "an API Key with a usage plan". Without it, when trying to deploy the example code, it gives the following error:

```
Can not define fine grain throttling if usage plan throttle is not defined.
```

Before you can set individual throttle for each individual method, you need first to set the global throttle settings for that API. So adding the `throttle` parameter to the `addUsagePlan` method, with the same value as the individual throttle for the echoMethod, fixes it.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
#6363)

* fix(custom-resources): AwsCustomResource with delete only action fails

Correctly find the default physical resource id.

Default to logical resource id for a create event with delete only call.

Fixes #6061

* break

Co-Authored-By: Elad Ben-Israel <[email protected]>

* integ test

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Elad Ben-Israel <[email protected]>
Explicitly add the necessary imports required for the route53 alias records examples in the custom domain section of the Typescript API Gateway documentation. Also, update the examples to use the same notation used in the route53 module, that is, `targets.` instead of `route53_targets.`

The previous examples were a bit confusing because they did not make it clear which packages were required, and even made it seem like you needed to import the targets from the route53 package. As an user who is learning the CDK and was not familiar with the Route53 and Route53 Targets packages I was stuck until I explored the documentation a bit more. I think this makes the example way more clear.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…approval (#6465)

Since updates will cause a dismissal of approvals, indicate in the mergify comment that users should not update manually.
#6202)

* fix(assert): comparable results between `haveResourceLike` and `countResourcesLike`

Utilizes exported function `isSuperObject` from `have-resource.ts` to ensure comparable behavior between `countResourcesLike` methods

* fix(assert): comparable results between `haveResourceLike` and `countResourcesLike`

Reverts movement of assertion tests in previous commit

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* add a module tracking issue template

Add a tracking issue template to make the new roadmap tracking issues faster to create for each module.

* update tracking.md with requested changes

* update labels

* small fixes

Co-authored-by: Noah Litov <[email protected]>
Co-authored-by: Chris Fife <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
When creating an Elasticsearch instance in the CDK, you are unable to
specify how the instance should be upgraded. This functionality is
present in CloudFormation, however it was missed in the CDK.

This fix adds the `enableVersionUpgrade` property to the CfnUpdatePolicy
interface.

Fixes: #6158

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Ensure `docker login` is called before `docker build` to allow using cdk docker
assets as base image for other docker assets.

Fixes #6466

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* fix(cli): fast "no-op" deploys do not consider tags

Stack-level tags apply to all supported resources in a stack. If they change, a
fast "no-op" deploy should not occur (e.g. a tag with the CDK version or a tag
with the commit hash when running in CI).

Fix the `'deploy not skipped if template changed'` test that was including the
`force` option.

Fix CLI integ tests not working anymore after #6463 and the `0.0.0` version.

* else

* compareTags

* README

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
symlink monorepo packages instead of using npm install
Fixes #6477

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
User Data objects currently only supports adding commands by providing the full command as a string.  This commit hopes to address this by adding the following functionality:
* On Exit Commands - Both bash and powershell have the concepts of trap functions which can be used to force a function to run when a an exception is run.  Using this we are able to set up a script block that will always run at the end of the script.
* add Signal Command - Using the above on Exit commands we are able to make it so the User data will send a signal to a specific resource (eg. Instance/Auto scaling group) with the results of the last command.
* Download S3 File Command - This adds commands to download the specified file using the aws cli on linux and AWS powershell  utility on windows
* Execute File Command - This adds commands to ensure that the specified file is executable then executes the file with specified arguments.

Fixes #623
'$' is a valid reference path that indicates that the entire object
should be selected.

'$$' is a valid selection of the context object that indicates that the
entire context object should be selected.

fixes #6388

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
eliasdraexler and others added 18 commits February 27, 2020 14:09
Exposes the Ref of `AWS::Lambda::EventSourceMapping` as eventSourceMappingId property on the EventSourceMapping and further on the SqsEventSource, KinesisEventSource and DynamoEventSource

Closes #5430



----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*

<!-- 
Please read the contribution guidelines and follow the pull-request checklist:
https://github.com/aws/aws-cdk/blob/master/CONTRIBUTING.md
 -->
It turns out that the Cognito service has validations that,
1. the user invitation email body and sms message must have the
template strings '{username}' and '{####}' - which would hold the
username and temporary password,
2. the verification email body and sms message should have the template
string '{####}' which would hold the verification code.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* added additional stack to 'ls' test so it doesn't fail

* combine physicalResourceId and physicalResourceIdPath to a union type

* fix tests according to new api

* added doc strings and rename argument

* fix tests

* fixing some tests

* enhance 'fromResponsePath' docstring

* fix references to physicalResourceId in README

* fix integ expected template and rename fromResponsePath to fromResponse

* Rephrase docstring for `fromResponse`

Co-Authored-By: Elad Ben-Israel <[email protected]>

* Rephrase docstring for `of`

Co-Authored-By: Elad Ben-Israel <[email protected]>

* fix README reference to fromResponsePath

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Elad Ben-Israel <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
#6534)

* fix(rds): setting timezone on DatabaseInstance causes internal failure

Per documentation[1], 'Timezone' property is only supported on Microsoft
SQL Server. Setting this property on a DatabaseInstance with a different
database engine causes deployment to fail (1) with a validation error
for a new instance of `AWS::RDS::DBInstance` and (2) internal failure
when modifying an existing instance of `AWS::RDS::DBInstance`.

[1]:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-timezone

fixes #6439

* PR feedback
* chore(pkglint): update language for experimental constructs.

The current language states that the entire module is unstable and
should not be used in production.

This is not entirely correct. The updated language differentiates CFN
resources from higher level APIs, and states the former can be used in
production and are stable, while the latter APIs are not stable and
subject to change.

* add a sentence around intent

* tweak the L1 line

Co-Authored-By: Elad Ben-Israel <[email protected]>

* slight tweak

* run pkglint -f and fixed up create-missing-libraries.ts

* revert unintended monocdk changes

Co-authored-by: Elad Ben-Israel <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…6258)

* feat(stepfunctions-tasks): add step functions task to run glue job

* add new task RunGlueJobTask and associated unit tests
* since Job construct does not yet exist, uses job name as required parameter

closes #5266

* cleanup constructor properties, add integration test

* remove job run ID from props, update default prop descriptions

* add s3 assets package to module

* fix linting errors

* clean up documentation, add links to docs and glue task example

* add verification step to integration step, ensure job succeeds

* update expected integration test stack (asset names)

* add integ test verification comment about glue cold start

* cleaned up the note around cold start

* specify glue job ARN in state machine role permissions

* change state machine role permissions based on service integration pattern

Co-authored-by: Niranjan Jayakar <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
@nija-at nija-at self-assigned this Mar 3, 2020
@nija-at nija-at added the pr/do-not-merge This PR should not be merged at this time. label Mar 3, 2020
@nija-at nija-at added pr/no-squash This PR should be merged instead of squash-merging it and removed pr/do-not-merge This PR should not be merged at this time. labels Mar 3, 2020
@aws-cdk-automation
Copy link
Collaborator Author

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject6AEA49D1-qxepHUsryhcu
  • Commit ID: ad328e0
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@mergify
Copy link
Contributor

mergify bot commented Mar 3, 2020

Thank you for contributing! Your pull request will be updated from master and then merged automatically without squashing (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify mergify bot merged commit a98c0b3 into release Mar 3, 2020
@mergify mergify bot deleted the bump/1.27.0 branch March 3, 2020 11:02
@aws-cdk-automation
Copy link
Collaborator Author

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject6AEA49D1-qxepHUsryhcu
  • Commit ID: 5f7ab72
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr/no-squash This PR should be merged instead of squash-merging it

Projects

None yet

Development

Successfully merging this pull request may close these issues.