Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aws sqs event schema #8227

Merged
merged 4 commits into from Sep 22, 2020
Merged

Conversation

thewizarodofoz
Copy link
Contributor

Closes: #8033

Copy link
Contributor

@medikoo medikoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@thewizarodofoz great thanks for picking this up!

In general it looks good. It'll be just great to have schema a bit more detailed (see my comment), and also with a schema we tend to remove all inline validation of properties, as with schema it's a superfluous logic that just adds to maintenance cost.

e.g. see what's removed in stream schema PR: https://github.com/serverless/serverless/pull/8201/files

type: 'object',
properties: {
arn: { $ref: '#/definitions/awsArn' },
batchSize: { type: 'integer' },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @medikoo .
Regarding removing inline validation - should I also remove all the tests that test those validations?
I assumed they would still apply (expecting ajv to now throw the errors instead of the inline validations), but it seems to me the tests aren't invoking the ajv validation. Meaning, I messed up the schema deliberately and expected that the tests will fail with ajv errors but they didn't.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding removing inline validation - should I also remove all the tests that test those validations?

Yes, definitely :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but it seems to me the tests aren't invoking the ajv validation

Yes, it's a problem with tests. Ideally they should be written with help of runServerless util, but it's old tests, that were introduced before we've changed the approach.

We would welcome the PR that refactors those tests, still that should be not in scope of this PR.

Also we agreed to not test that schema validation works (it increases maintenance cost and seems a bit superfluous when schema validation engine is extensively tested on its own). In that context we should test just valid scenarios, and that already makes a great tests that confirm that by accident we didn't outrule a valid notation.

@codecov-commenter
Copy link

codecov-commenter commented Sep 15, 2020

Codecov Report

Merging #8227 into master will decrease coverage by 0.06%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #8227      +/-   ##
==========================================
- Coverage   88.16%   88.10%   -0.07%     
==========================================
  Files         248      248              
  Lines        9430     9379      -51     
==========================================
- Hits         8314     8263      -51     
  Misses       1116     1116              
Impacted Files Coverage Δ
...ib/plugins/aws/package/compile/events/sqs/index.js 100.00% <ø> (ø)
...plugins/aws/package/compile/events/stream/index.js 98.00% <0.00%> (-0.60%) ⬇️
lib/utils/getServerlessConfigFile.js 94.11% <0.00%> (ø)
lib/plugins/aws/provider/awsProvider.js 93.11% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4af57a5...3e8e8af. Read the comment docs.

Copy link
Contributor

@medikoo medikoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @thewizarodofoz It looks very good. I've just spotted one issue. Please see my comment

type: 'object',
properties: {
arn: { $ref: '#/definitions/awsArn' },
batchSize: { type: 'integer', minimum: 1, maximum: 10000 },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@medikoo
Copy link
Contributor

medikoo commented Sep 21, 2020

@thewizarodofoz let me know if it's ready for re-review. We'd love to have that in!

Copy link
Contributor

@medikoo medikoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @thewizarodofoz !

@medikoo medikoo merged commit 4f96ce1 into serverless:master Sep 22, 2020
@thewizarodofoz thewizarodofoz deleted the aws-sqs-event-schema branch September 22, 2020 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Config schema: Define AWS "sqs" function event properties
3 participants