From c02865504e92afb9bd8d23d9776156ce40bc750f Mon Sep 17 00:00:00 2001 From: olav Date: Fri, 29 Apr 2022 08:09:27 +0200 Subject: [PATCH] refactor: disallow additionalProperties in response schemas (#1543) --- src/lib/openapi/spec/constraint-schema.ts | 1 + src/lib/openapi/spec/feature-schema.ts | 1 + src/lib/openapi/spec/features-schema.ts | 1 + src/lib/openapi/spec/override-schema.ts | 1 + src/lib/openapi/spec/strategy-schema.ts | 1 + src/lib/openapi/spec/variant-schema.ts | 1 + .../e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap | 6 ++++++ 7 files changed, 12 insertions(+) diff --git a/src/lib/openapi/spec/constraint-schema.ts b/src/lib/openapi/spec/constraint-schema.ts index aed962bee7d..079da5ab013 100644 --- a/src/lib/openapi/spec/constraint-schema.ts +++ b/src/lib/openapi/spec/constraint-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; export const schema = { type: 'object', + additionalProperties: false, required: ['contextName', 'operator'], properties: { contextName: { diff --git a/src/lib/openapi/spec/feature-schema.ts b/src/lib/openapi/spec/feature-schema.ts index 9f9596181d8..263283069ca 100644 --- a/src/lib/openapi/spec/feature-schema.ts +++ b/src/lib/openapi/spec/feature-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; const schema = { type: 'object', + additionalProperties: false, required: ['name', 'project'], properties: { name: { diff --git a/src/lib/openapi/spec/features-schema.ts b/src/lib/openapi/spec/features-schema.ts index 90be7bb8af1..0e8cde902c2 100644 --- a/src/lib/openapi/spec/features-schema.ts +++ b/src/lib/openapi/spec/features-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; export const schema = { type: 'object', + additionalProperties: false, required: ['version', 'features'], properties: { version: { diff --git a/src/lib/openapi/spec/override-schema.ts b/src/lib/openapi/spec/override-schema.ts index 1cffd278de5..ecda013fb0d 100644 --- a/src/lib/openapi/spec/override-schema.ts +++ b/src/lib/openapi/spec/override-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; export const schema = { type: 'object', + additionalProperties: false, required: ['contextName', 'values'], properties: { contextName: { diff --git a/src/lib/openapi/spec/strategy-schema.ts b/src/lib/openapi/spec/strategy-schema.ts index d8f0c5cf40c..90f7df6e265 100644 --- a/src/lib/openapi/spec/strategy-schema.ts +++ b/src/lib/openapi/spec/strategy-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; export const schema = { type: 'object', + additionalProperties: false, required: ['id', 'name', 'constraints', 'parameters'], properties: { id: { diff --git a/src/lib/openapi/spec/variant-schema.ts b/src/lib/openapi/spec/variant-schema.ts index 94d1df4b0d5..dd528f689a0 100644 --- a/src/lib/openapi/spec/variant-schema.ts +++ b/src/lib/openapi/spec/variant-schema.ts @@ -2,6 +2,7 @@ import { createSchemaObject, CreateSchemaType } from '../types'; export const schema = { type: 'object', + additionalProperties: false, required: ['name', 'weight', 'weightType', 'stickiness', 'overrides'], properties: { name: { diff --git a/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap b/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap index e97c2a43711..00b8ec28b42 100644 --- a/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap +++ b/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap @@ -52,6 +52,7 @@ Object { "components": Object { "schemas": Object { "constraintSchema": Object { + "additionalProperties": false, "properties": Object { "contextName": Object { "type": "string", @@ -93,6 +94,7 @@ Object { "type": "object", }, "featureSchema": Object { + "additionalProperties": false, "properties": Object { "createdAt": Object { "format": "date", @@ -145,6 +147,7 @@ Object { "type": "object", }, "featuresSchema": Object { + "additionalProperties": false, "properties": Object { "features": Object { "items": Object { @@ -163,6 +166,7 @@ Object { "type": "object", }, "overrideSchema": Object { + "additionalProperties": false, "properties": Object { "contextName": Object { "type": "string", @@ -181,6 +185,7 @@ Object { "type": "object", }, "strategySchema": Object { + "additionalProperties": false, "properties": Object { "constraints": Object { "items": Object { @@ -207,6 +212,7 @@ Object { "type": "object", }, "variantSchema": Object { + "additionalProperties": false, "properties": Object { "name": Object { "type": "string",