Plugins configuration
Plugin configurations are stored in /config/plugins.js|ts (see project structure). Each plugin can be configured with the following available parameters:
| Parameter | Description | Type | 
|---|---|---|
| enabled | Enable ( true) or disable (false) an installed plugin | Boolean | 
| configOptional | Used to override default plugin configuration (defined in strapi-server.js) | Object | 
| resolveOptional, only required for local plugins | Path to the plugin's folder | String | 
 Note
Some features of Strapi are provided by plugins and the following plugins can also have specific configuration options: GraphQL and Upload.
Basic example custom configuration for plugins:
- JavaScript
- TypeScript
./config/plugins.js
module.exports = ({ env }) => ({
  // enable a plugin that doesn't require any configuration
  i18n: true,
  // enable a custom plugin
  myplugin: {
    // my-plugin is going to be the internal name used for this plugin
    enabled: true,
    resolve: './src/plugins/my-local-plugin',
    config: {
      // user plugin config goes here
    },
  },
  // disable a plugin
  'my-other-plugin': {
    enabled: false, // plugin installed but disabled
  },
});
./config/plugins.ts
export default ({ env }) => ({
  // enable a plugin that doesn't require any configuration
  i18n: true,
  // enable a custom plugin
  myplugin: {
    // my-plugin is going to be the internal name used for this plugin
    enabled: true,
    resolve: './src/plugins/my-local-plugin',
    config: {
      // user plugin config goes here
    },
  },
  // disable a plugin
  'my-other-plugin': {
    enabled: false, // plugin installed but disabled
  },
});
 Tip
If no specific configuration is required, a plugin can also be declared with the shorthand syntax 'plugin-name': true.
GraphQL configuration
The GraphQL plugin has the following specific configuration options that should be declared in a graphql.config object within the config/plugins file. All parameters are optional:
| Parameter | Description | Type | Default | 
|---|---|---|---|
| apolloServer | Additional configuration for ApolloServer. | Object | {} | 
| artifacts | Object containing filepaths, defining where to store generated artifacts. Can include the following properties: 
 generateArtifactsis set totrue. | Object | 
 | 
| defaultLimit | Default value for the pagination[limit]parameter used in API calls | Integer | 100 | 
| depthLimit | Limits the complexity of GraphQL queries. | Integer | 10 | 
| endpoint | The URL path on which the plugin is exposed | String | /graphql | 
| generateArtifacts | Whether Strapi should automatically generate and output a GraphQL schema file and corresponding TypeScript definitions. The file system location can be configured through artifacts. | Boolean | false | 
| maxLimit | Maximum value for the pagination[limit]parameter used in API calls | Integer | -1 | 
| playgroundAlways | Whether the playground should be publicly exposed. Enabled by default in if NODE_ENVis set todevelopment. | Boolean | false | 
| shadowCRUD | Whether type definitions for queries, mutations and resolvers based on models should be created automatically (see Shadow CRUD documentation). | Boolean | true | 
| v4ComptabilityMode | Enables the retro-compatibility with the Strapi v4 format (see more details in the breaking change entry | Boolean | false | 
Example custom configuration:
- JavaScript
- TypeScript
./config/plugins.js
module.exports = () => ({
  graphql: {
    enabled: true,
    config: {
      playgroundAlways: false,
      defaultLimit: 10,
      maxLimit: 20,
      apolloServer: {
        tracing: true,
      },
    }
  }
})
./config/plugins.ts
export default () => ({
  graphql: {
    enabled: true,
    config: {
      playgroundAlways: false,
      defaultLimit: 10,
      maxLimit: 20,
      apolloServer: {
        tracing: true,
      },
    }
  }
})