fastify/fast-json-stringify

lack of strictSchema in ajv options results in silent typos

autopulated opened this issue · 0 comments

Prerequisites

  • I have written a descriptive issue title
  • I have searched existing issues to ensure the issue has not already been raised

Issue

strictSchema is set to false in the ajv options (and overrides any user-provided ajv: options to the constructor, so it cannot be set to true by the user either).

This makes it very easily to add a schema with an error that is silently ignored.

In my case I made a typo with additionalProperties in a fastify response schema, which meant that additional properties were not removed from a response on serialisation that should have been.

It would seem like having strictSchema:true would be a better default? (which would be a breaking change needing a major version I suppose), or at least allow the user to set this.

I tested setting strictSchema:true and running the tests, and the only additional keyword used internally seems to be kind1,2, which is only used in tests.