Skip to main content

Model config path uses uid instead of dot notation

In Strapi 5, to retrieve config values you will need to use config.get('plugin::upload.myconfigval') or config.get('api::myapi.myconfigval')

This page is part of the breaking changes database and provides information about the breaking change and additional instructions to migrate from Strapi v4 to Strapi 5.

๐Ÿ”Œ Is this breaking change affecting plugins?Yes
๐Ÿค– Is this breaking change automatically handled by a codemod?Partly

Breaking change descriptionโ€‹

In Strapi v4

Models are added to the configuration using . notation as follows:

strapi.config.get('plugin.upload.somesetting');
if ( strapi.config.has('plugin.upload.somesetting') ) {
strapi.config.set('plugin.upload.somesetting', false);
}

In Strapi 5

Models are added to the configuration using :: replacing . notation as follows:

strapi.config.get('plugin::upload.somesetting');
if ( strapi.config.has('plugin::upload.somesetting') ) {
strapi.config.set('plugin::upload.somesetting', false);
}

Migrationโ€‹

This section regroups useful notes and procedures about the introduced breaking change.

Notesโ€‹

  • If an API has a configuration, it should also be accessed using strapi.config.get(โ€™api::myapi.myconfigvalโ€™).

  • The 'plugin' namespace has temporary support with a deprecation warning. This means that referencing plugin.upload.somesetting will emit a warning in the server log and check plugin::upload.somesetting instead.

  • A codemod has been created to assist in refactoring the strings in user code, replacing plugin. or api. with plugin:: and api::.

Manual procedureโ€‹

A codemod will automatically handle the change in most cases.

In cases were the codemod does not automatically handle the change, users will need to manually replace all their strings to target the new config paths.