From b3e6a3e82e9c3ed0c661deb8c019efa3a5e4f418 Mon Sep 17 00:00:00 2001 From: Camilo Sampedro Date: Thu, 30 May 2019 12:35:12 +0900 Subject: [PATCH 1/4] Adding a validation to validation.js script This new check prevents #6185 from happening. - This only checks that the `claims` object is defined, so it can proceed to do the length check. --- .../aws/package/compile/events/apiGateway/lib/validate.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.js b/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.js index 08e13da2f..2b6ced95f 100644 --- a/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.js +++ b/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.js @@ -283,6 +283,7 @@ module.exports = { if (integration === 'AWS_PROXY' && typeof arn === 'string' && awsArnRegExs.cognitoIdpArnExpr.test(arn) + && claims && claims.length > 0) { const errorMessage = [ 'Cognito claims can only be filtered when using the lambda integration type', From ef4934d77ef705ddb9118a1ee73413f153cf58d7 Mon Sep 17 00:00:00 2001 From: Philipp Muens Date: Mon, 3 Jun 2019 14:45:05 +0200 Subject: [PATCH 2/4] Add regression test --- .../events/apiGateway/lib/validate.test.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.test.js b/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.test.js index 43f20c7f7..a0e692af1 100644 --- a/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.test.js +++ b/lib/plugins/aws/package/compile/events/apiGateway/lib/validate.test.js @@ -325,6 +325,25 @@ describe('#validate()', () => { expect(() => awsCompileApigEvents.validate()).not.to.throw(Error); }); + it('should not throw when using a cognito string authorizer', () => { + awsCompileApigEvents.serverless.service.functions = { + first: { + events: [ + { + http: { + path: '/{proxy+}', + method: 'ANY', + integration: 'lambda-proxy', + authorizer: 'arn:aws:cognito-idp:us-east-1:$XXXXX:userpool/some-user-pool', + }, + }, + ], + }, + }; + + expect(() => awsCompileApigEvents.validate()).not.to.throw(Error); + }); + it('should accept AWS_IAM as authorizer', () => { awsCompileApigEvents.serverless.service.functions = { foo: {}, From c9fec295a755e01da7c70e6c212fab7b7c1a9e09 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Mon, 3 Jun 2019 15:50:12 +0200 Subject: [PATCH 3/4] Do not run integration tests for PR's --- .travis.yml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index dadd0b98f..5cbf9e936 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,19 +18,13 @@ stages: jobs: include: # To speed up Travis build, use one job per Platform + Node.js version combination - - name: "Lint, Unit Tests, Basic Integration Tests - Linux - Node.js v12" + - name: "Lint, Unit Tests - Linux - Node.js v12" node_js: 12 env: - SLS_IGNORE_WARNING=* - FORCE_COLOR=1 # TTY is lost as processes are combined '&&' - # AWS_ACCESS_KEY_ID - - secure: Ia2nYzOeYvTE6qOP7DBKX3BO7s/U7TXdsvB2nlc3kOPFi//IbTVD0/cLKCAE5XqTzrrliHINSVsFcJNSfjCwmDSRmgoIGrHj5CJkWpkI6FEPageo3mdqFQYEc8CZeAjsPBNaHe6Ewzg0Ev/sjTByLSJYVqokzDCF1QostSxx1Ss6SGt1zjxeP/Hp4yOJn52VAm9IHAKYn7Y62nMAFTaaTPUQHvW0mJj6m2Z8TWyPU+2Bx6mliO65gTPFGs+PdHGwHtmSF/4IcUO504x+HjDuwzW2itomLXZmIOFfGDcFYadKWzVMAfJzoRWOcVKF4jXdMoSCOviWpHGtK35E7K956MTXkroVoWCS7V0knQDovbRZj8c8td8mS4tdprUA+TzgZoHet2atWNtMuTh79rdmwoAO+IAWJegYj62Tdfy3ycESzY+KxSaV8kysG9sR3PRFoWjZerA7MhLZEzQMORXDGjJlgwLaZfYVqjlsGe5p5etFBUTd0WbFgSwOKLoA2U/fm7WzqItkjs3UWaHuvFVvwYixGxjEVmVczS6wa2cdGpHtVD9H7km4fPEzljHqQ26v0P5e8eylgqLF2IB6mL7UqGFrAtrMvAgN/M3gnq4dTs/wq1AJIOxEP7YW7kc0NAldk8vUz6t5GzCPNcuukxAku91Awnh0twxgUywatgJLZPY= - # AWS_SECRET_ACCESS_KEY - - secure: Dgaa5XIsA5Vbw/CYQLUAuVVsDX26C8+f1XYGwsbNmFQKbKvM8iy9lGrHlfrT3jftJkJH6re8tP1RjyZjjzLe25KPk4Tps7grNteCyiIIEDsC2aHhiXHD6zNHsItpxYusaFfyQinFWnK4CAYKWb9ZNIwHIDUIB4vq807QGAhYsnoj1Lg/ajWvtEKBwYjEzDz9OjB91lw7lpCnHtmKKw5A+TNIVGpDDZ/jRBqETsPaePtiXC9UTHZQyM3gFoeVXiJw9KSU/gjIx9REihCaWWPbnuQSeIONGGlVWY9V4DTZIsJr9/uwDcbioeXDD3G1ezGtNPPRSNTtq08QlUtE4mEtKea/+ObpllKZCeZGn6AJhMn+uqMIP95FFlqBB55YzRcLZY+Igi/qm/9LJ9RinAhxRVXiwzeQ+BdVA6jshAAzr+7wklux6lZAa0xGw9pgTv7MI4RP2LJ/LMP1ppFsnv9n/qt93Ax1VEwEu3xHZe3VTYL9tbXOPTZutf6fKjUrW7wSSuy637queESjYnnPKSb1vZcPxjSFlyh+GJvxu/3PurF9aqfiBdiorIBre+pQS4lakLtoft5nsbA+4iYUwrXR58qUPVUqQ7a0A0hedOWlp6g9ixLa6nugUP5aobJzR71T8l/IjqpnY2EEd/iINEb0XfUiZtB5zHaqFWejBtmWwCI= - script: - # Combine with '&&' to not continue on fail - - npm run lint-updated && npm test && npm run integration-test-run-basic - - npm run integration-test-cleanup + # Combine with '&&' to not continue on fail + script: npm run lint-updated && npm test - name: "Unit Tests - Windows - Node.js v12" os: windows node_js: 12 @@ -66,7 +60,7 @@ jobs: # AWS_SECRET_ACCESS_KEY - secure: Dgaa5XIsA5Vbw/CYQLUAuVVsDX26C8+f1XYGwsbNmFQKbKvM8iy9lGrHlfrT3jftJkJH6re8tP1RjyZjjzLe25KPk4Tps7grNteCyiIIEDsC2aHhiXHD6zNHsItpxYusaFfyQinFWnK4CAYKWb9ZNIwHIDUIB4vq807QGAhYsnoj1Lg/ajWvtEKBwYjEzDz9OjB91lw7lpCnHtmKKw5A+TNIVGpDDZ/jRBqETsPaePtiXC9UTHZQyM3gFoeVXiJw9KSU/gjIx9REihCaWWPbnuQSeIONGGlVWY9V4DTZIsJr9/uwDcbioeXDD3G1ezGtNPPRSNTtq08QlUtE4mEtKea/+ObpllKZCeZGn6AJhMn+uqMIP95FFlqBB55YzRcLZY+Igi/qm/9LJ9RinAhxRVXiwzeQ+BdVA6jshAAzr+7wklux6lZAa0xGw9pgTv7MI4RP2LJ/LMP1ppFsnv9n/qt93Ax1VEwEu3xHZe3VTYL9tbXOPTZutf6fKjUrW7wSSuy637queESjYnnPKSb1vZcPxjSFlyh+GJvxu/3PurF9aqfiBdiorIBre+pQS4lakLtoft5nsbA+4iYUwrXR58qUPVUqQ7a0A0hedOWlp6g9ixLa6nugUP5aobJzR71T8l/IjqpnY2EEd/iINEb0XfUiZtB5zHaqFWejBtmWwCI= script: - - npm run integration-test-run-all + - npm run integration-test-run-basic && npm run integration-test-run-all - npm run integration-test-cleanup - stage: Deploy From d5afac17693973a3f60269700bee7bb3165ecc44 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Mon, 3 Jun 2019 16:13:09 +0200 Subject: [PATCH 4/4] Ensure colors --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 5cbf9e936..a7587aa35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,6 +55,7 @@ jobs: node_js: 12 env: - SLS_IGNORE_WARNING=* + - FORCE_COLOR=1 # TTY is lost as processes are combined '&&' # AWS_ACCESS_KEY_ID - secure: Ia2nYzOeYvTE6qOP7DBKX3BO7s/U7TXdsvB2nlc3kOPFi//IbTVD0/cLKCAE5XqTzrrliHINSVsFcJNSfjCwmDSRmgoIGrHj5CJkWpkI6FEPageo3mdqFQYEc8CZeAjsPBNaHe6Ewzg0Ev/sjTByLSJYVqokzDCF1QostSxx1Ss6SGt1zjxeP/Hp4yOJn52VAm9IHAKYn7Y62nMAFTaaTPUQHvW0mJj6m2Z8TWyPU+2Bx6mliO65gTPFGs+PdHGwHtmSF/4IcUO504x+HjDuwzW2itomLXZmIOFfGDcFYadKWzVMAfJzoRWOcVKF4jXdMoSCOviWpHGtK35E7K956MTXkroVoWCS7V0knQDovbRZj8c8td8mS4tdprUA+TzgZoHet2atWNtMuTh79rdmwoAO+IAWJegYj62Tdfy3ycESzY+KxSaV8kysG9sR3PRFoWjZerA7MhLZEzQMORXDGjJlgwLaZfYVqjlsGe5p5etFBUTd0WbFgSwOKLoA2U/fm7WzqItkjs3UWaHuvFVvwYixGxjEVmVczS6wa2cdGpHtVD9H7km4fPEzljHqQ26v0P5e8eylgqLF2IB6mL7UqGFrAtrMvAgN/M3gnq4dTs/wq1AJIOxEP7YW7kc0NAldk8vUz6t5GzCPNcuukxAku91Awnh0twxgUywatgJLZPY= # AWS_SECRET_ACCESS_KEY