From 1dae937ea5a34f3f6865d0c49c3908d5c038a177 Mon Sep 17 00:00:00 2001 From: Marc-Roig Date: Mon, 6 Nov 2023 11:28:19 +0100 Subject: [PATCH] feat: prevent user from using doc id attribute --- .../src/utils/transform-content-types-to-models.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/core/strapi/src/utils/transform-content-types-to-models.ts b/packages/core/strapi/src/utils/transform-content-types-to-models.ts index dd261b84eb..0b30761b1d 100644 --- a/packages/core/strapi/src/utils/transform-content-types-to-models.ts +++ b/packages/core/strapi/src/utils/transform-content-types-to-models.ts @@ -33,6 +33,17 @@ export const transformContentTypesToModels = ( ? { documentId: { type: 'string', default: createId } } : {}; + // Prevent user from creating a documentId attribute + const reservedAttributeNames = ['documentId', 'document_id']; + reservedAttributeNames.forEach((reservedAttributeName) => { + if (reservedAttributeName in contentType.attributes) { + throw new Error( + `The attribute "${reservedAttributeName}" is reserved and cannot be used in a model` + + `Please rename "${contentType.modelName}" attribute "${reservedAttributeName}" to something else.` + ); + } + }); + const model = { ...contentType, // reuse new model def