8332 Commits

Author SHA1 Message Date
bobjamin
d9f7454339 adding semicolons for linter 2018-03-02 10:49:46 +00:00
bobjamin
e492e744a9 added iam managed policies to aws provider closes #3751 2018-03-02 10:33:35 +00:00
Takahiro Horike
f44429d7a9
Merge pull request #4792 from michaelmior/patch-1
Fix typo in README
2018-03-02 10:28:40 +09:00
Michael Mior
3db1e79571
Fix typo in README 2018-03-01 19:14:57 -05:00
Takahiro Horike
ab163b1fe6
Merge pull request #3999 from rmax-contrib/aws-notification-arns
Add notificationArns AWS parameter to enable Cloudformation notifications
2018-03-02 07:37:17 +09:00
Takahiro Horike
7499af45f0
Merge pull request #4768 from bsdkurt/master
Allow UsagePlan's to be created without ApiKeys defined. Issue #4459
2018-03-01 22:30:48 +09:00
Takahiro Horike
81e1dd03ed
Merge pull request #4783 from Vadorequest/doc-better-variable-syntax
Doc - Add AWS-only alternative for variableSyntax that is compatible with Serverless way
2018-03-01 20:01:04 +09:00
Takahiro Horike
6e98b63387
Merge pull request #4784 from sime/changelog-1-26-1
Sync CHANGELOG to represent 1.26.1 release
2018-03-01 19:53:28 +09:00
horike37
92b856818c minor tweak 2018-03-01 19:37:48 +09:00
Dhenain Ambroise
064b977e47 Accept change (peer-review) - better comment 2018-02-28 23:10:39 +01:00
Simon Males
90cbfdcae2 Sync CHANGELOG to represent 1.26.1 release 2018-02-28 23:04:39 +01:00
Dhenain Ambroise
f6df4f5442 Doc - Add AWS-only alternative for variableSyntax that is compatible with serverless way (credits to @dschep) 2018-02-28 22:55:44 +01:00
Frank Schmid
a58ce94746
Merge pull request #4732 from sime/typescript-source-maps
Enable TypeScript file source map support in TypeScript template
2018-02-28 19:19:38 +01:00
Simon Males
011a75abb8 Removing duplicate dependencies blocks 2018-02-28 18:21:10 +01:00
Simon Males
3a40d671a0 Merge remote-tracking branch 'franciscocpg/add-source-map-support' into typescript-source-maps 2018-02-28 17:59:52 +01:00
Francisco Guimarães
93c50b8006 Adding source map support for all files 2018-02-28 09:29:30 -03:00
Takahiro Horike
26184f30f8
Merge pull request #4773 from murtyjones/patch-1
Pass authorizer custom context to target lambda
2018-02-27 22:41:41 +09:00
Marty Jones
5e98476210
adds enhancedAuthContext 2018-02-27 07:26:32 -06:00
Takahiro Horike
fbaa6cca51
Merge pull request #4763 from icj217/master
Added name property to cloudwatchEvent CF template
2018-02-27 21:44:28 +09:00
Frank Schmid
eb975ddcba
Merge pull request #4775 from serverless/fix-4705
Fixed a bug which you cannot deploy with lambda integration in v1.26.0
2018-02-27 10:35:11 +01:00
Craig Burdulis
52af64368e Fixed test script event name property 2018-02-26 20:31:15 -05:00
Craig Burdulis
53cc8fb607 Added test case and documentation for name property 2018-02-26 20:26:51 -05:00
horike37
93c37e4d39 set default statusCodes to response if it is empty 2018-02-27 01:44:21 +09:00
Takahiro Horike
f1f2988842
Merge pull request #4759 from jfix/patch-1
Fix typo in sub-heading
2018-02-26 22:16:05 +09:00
Takahiro Horike
067bb12b08
Merge pull request #4688 from yunspace/fsharp2
Upgrade aws-fsharp example to .Net Core 2.0
2018-02-26 22:06:46 +09:00
Marty Jones
818f58ac80
Pass authorizer custom context to target lambda
Per https://github.com/serverless/serverless/issues/4374
2018-02-25 21:38:14 -06:00
Frank Schmid
74042d08aa
Merge pull request #4769 from erikerikson/4713-follow-up-fixes-2
#4713 Follow up fixes, take 2
2018-02-25 12:07:26 +01:00
Kurt Miller
2b19a196d6 Lint corrections for usagePlan.test.js 2018-02-24 14:52:32 -05:00
Kurt Miller
39d07e9aef Expand UsagePlan testing to cover default and custom cases. 2018-02-24 14:33:55 -05:00
Erik Erikson
0ee0a1e239 Only disable and restore dependent service resolution methods once. Otherwise, subsequent removals may cache the previous replacements. If they restore last then they will restore with the replacements, breaking standard usage.
Add tests for this guarantee.
2018-02-24 09:34:50 -08:00
Kurt Miller
97d3a031c8 Allow UsagePlan's to be created without ApiKeys defined. Addresses
issue #4459.
2018-02-24 12:18:03 -05:00
Frank Schmid
8e6582dfa9
Merge pull request #4754 from erikerikson/4713-follow-up-fixes
Follow up fixes for #4713
2018-02-24 11:52:12 +01:00
Erik Erikson
91a10940eb Add further comments noting code entanglement 2018-02-23 10:09:18 -08:00
Yunspace
0d652f287c upgraded fsharp example to dotnet 2.0, updated docs, unit and integration tests. Removed duplicate code from docs section 2018-02-23 20:50:00 +11:00
Erik Erikson
bf5a8c9fd4 Fix 4744 and associated
The framework's Service class modifies a user's service, mutating a given `service: { name: 'string' }` to `service: 'string'` but doesn't account for this in the variables system.  This is the basis for #4744.

While working this area, I discovered that the Service class also does this to the provider, accepting `provider: 'aws'` and replacing it with `provider: { name: 'aws' }`, causing the natural `${self:provider}` to fail.

Catching either 'self:service.name' or 'self:provider' and replacing them with the mutated reference solves this user confusion.
2018-02-22 17:17:55 -08:00
Erik Erikson
dc3a4aa6af Fix print, clean pre-population, fix cyclic bug
Fix `print`
The print command is highly linked to the `Variables` and `Service` codebases, keep those in sync and leave reminders about the link.  Made these explicit and separately implemented to avoid complexity.
Additionally, the print command re-populates an object with the *very similar* content as the previously pre-populated service (just not augmented as just mentioned).  This can lead to cross contamination between the two.  As such, all caches must be cleared per unique invocation of service/object/property population.
Add tests for some expected but previously unverified behaviors.

Clean pre-population
The previous implementation worked okay but was unnecessary and would have been a maintenance problem.  Instead, just knock out the population of variables depending on those config dependent services and use the standard means of resolution.

Fix cyclic bug (resulting from running print against a self-referencing serverless.yml)
The caching of values could lead to a cyclic object remaining in the caches for variable population.  This causes crashes and pain.  Solved by the cache cleaning logic.
2018-02-22 16:30:04 -08:00
icj217
a4de7288f3
Added name property to CloudFormation template
Now when a user specifies a name property under the cloudwatchEvent, it will be carried over to the CF template.
2018-02-22 13:21:50 -05:00
Takahiro Horike
897961d475
Merge pull request #4757 from alexindeed/master
Added IAM roles support
2018-02-22 14:37:43 +09:00
Alex
90f89ec2fd fixed attribute 2018-02-21 18:02:04 -08:00
Jakob Fix
5618c5a453
Fix typo in sub-heading
compatability -> compatibility (nitpicking, I know)
2018-02-21 23:01:04 +01:00
Alex
aa24154ca9 updated menu 2018-02-21 11:10:43 -08:00
Alex
ecf37ebaab updated links 2018-02-21 10:49:29 -08:00
Alex
0940fd4595 updated templates 2018-02-21 10:39:50 -08:00
Devin Fee
d1d1b05cea Fixed python module parsing (#4755)
* Fixed python module parsing

Ref: https://github.com/serverless/serverless/issues/4663#issuecomment-366931491

* Update index.js

* Update index.js
2018-02-21 18:59:42 +01:00
Takahiro Horike
ac5b6df517
Merge pull request #4756 from atsuky/patch-1
Fixed a typo
2018-02-21 18:28:20 +09:00
Andreu Gallofré
e572563441
Fixed a typo
It's supposed to say python code, but it says nodejs two times
2018-02-21 10:06:53 +01:00
Erik Erikson
8c7db120ae Add cases for all dependent services, and a variety of deep variable (DV) cases
Solve for these cases.  The bug was that DVs can render to DVs when a value is being obtained from them (i.e. they are being de-referenced in getValueFromDeep).  This is particularly problematic in the case that the original DV being rendered has a deep reference into the rendered DV.  In that case the DV returned by rendering must be replaced by yet another DV.

While accomplishing the above, various bits of cleanup were implemented and I added some commentary around getDeeperValue for future engineers.

This case is particularly relevant if you have:

`serverless.yml`:
```
service: serverless-hello-world

provider:
  name: aws
  runtime: nodejs6.10
  stage: dev
  environment:
    SECRET: ${self:custom.secrets.SECRET}

functions:
  helloWorld:
    handler: handler.helloWorld
    events:
      - http:
          path: hello-world
          method: get
          cors: true

custom:
  stage: ${opt:stage, self:provider.stage}
  secrets: ${file(secrets.${self:custom.stage}.yml)}
```
AND
`secrets.dev.yml`:
```
SECRETS: secrets
```

Populating this service should result in the following sequence of rendering phases:

#########################
# PHASE 1
#
# ${self:custom.secrets.SECRET}
#   <- ${deep:0.SECRET}
#   deep[0] = ${file(secrets.${self:custom.stage}.yml)}
#
# ${opt:stage, self:provider.stage}
#   <- 'dev'
#
# ${file(secrets.${self:custom.stage}.yml)}
#   <- ${file(secrets.${deep:1}.yml)}
#   deep[1] = ${opt:stage, self:provider.stage}
#
# RESULT
#
# service: serverless-hello-world
#
# provider:
#   name: aws
#   runtime: nodejs6.10
#   stage: dev
#   environment:
#     SECRET: ${deep:0.SECRET}
#
# functions:
#   helloWorld:
#     handler: handler.helloWorld
#     events:
#       - http:
#           path: hello-world
#           method: get
#           cors: true
#
# custom:
#   stage: dev
#   secrets: ${file(secrets.${deep:1}.yml)}
#########################

#########################
# PHASE 2
#
# ${deep:0.SECRET}
#   <- this.populateValue('${file(secrets.${self:custom.stage}.yml)}') => '${file(secrets.${deep:1}.yml)}' => '${deep:2}' => '${deep:2.SECRET}'
#   deep[2] = ${file(secrets.${deep:1}.yml)}
#
# ${file(secrets.${deep:1}.yml)}
#   <- this.populateValue('${file(secrets.${deep:1}.yml)}') => '${file(secrets.dev.yml)}' => '${deep:3}'
#   deep[3] = ${file(secrets.dev.yml)}
#
# RESULT
#
# service: serverless-hello-world
#
# provider:
#   name: aws
#   runtime: nodejs6.10
#   stage: dev
#   environment:
#     SECRET: ${deep:2.SECRET}
#
# functions:
#   helloWorld:
#     handler: handler.helloWorld
#     events:
#       - http:
#           path: hello-world
#           method: get
#           cors: true
#
# custom:
#   stage: dev
#   secrets: ${deep:3}
#########################

#########################
# PHASE 3
#
# ${deep:2.SECRET}
#   <- this.populateValue('${file(secrets.${deep:1}.yml)}') => '${file(secrets.dev.yml)}' => '${deep:3}' => '${deep:3.SECRET}'
#   deep[3] is already set to ${file(secrets.dev.yml)}
#
# ${deep:3}
#   <- this.populateValue('${file(secrets.dev.yml)}') => { SECRET: 'secret' }
#
# RESULT
#
# service: serverless-hello-world
#
# provider:
#   name: aws
#   runtime: nodejs6.10
#   stage: dev
#   environment:
#     SECRET: ${deep:3.SECRET}
#
# functions:
#   helloWorld:
#     handler: handler.helloWorld
#     events:
#       - http:
#           path: hello-world
#           method: get
#           cors: true
#
# custom:
#   stage: dev
#   secrets:
#     SECRET: secret
#########################

#########################
# PHASE 4
#
# ${deep:3}
#   <- this.populateValue('${file(secrets.dev.yml)}') => this.getDeeperValue(['SECRET'], { SECRET: 'secret' }) => 'secret'
#
# RESULT
#
# service: serverless-hello-world
#
# provider:
#   name: aws
#   runtime: nodejs6.10
#   stage: dev
#   environment:
#     SECRET: secret
#
# functions:
#   helloWorld:
#     handler: handler.helloWorld
#     events:
#       - http:
#           path: hello-world
#           method: get
#           cors: true
#
# custom:
#   stage: dev
#   secrets:
#     SECRET: secret
#########################
2018-02-20 20:57:24 -08:00
Alex
3b278f4d6b added IAM roles docs 2018-02-20 16:16:55 -08:00
Erik Erikson
a35bcc01cd Deep values can be overwrites too! Fix issue reported by @laardee (thank you!)
Simple oversight that deep variables can reference overwrites too.  This fix acknowledges this oversight by using the standard logic for using overwrite instead of getValueFromSource in this case.
2018-02-20 12:21:26 -08:00
Frank Schmid
39caddc404
Merge pull request #4713 from erikerikson/fix-4687-cyclic-variable-dependencies
Eliminate/Report Hung Promises (#4687), Prepopulate Stage and Region (#4311), Handle Quoted Strings (#4734)
2018-02-20 13:56:27 +01:00