@@ -131,6 +133,17 @@ npm run build && npm run verify
The above commands will not only build the plugin, but also verify that the output is valid and ready to be published. You can then publish your plugin to NPM as you would any other package.
+:::tip Upgrading from SDK Plugin v5
+If you're upgrading from `@strapi/sdk-plugin` v5 to v6:
+* Delete any `packup.config.ts` file from your plugin (it is no longer used).
+* Rely on `package.json#exports` for build configuration (it is now derived automatically).
+* Add `--sourcemap` to your build command if you need sourcemaps (they now default to off).
+
+No other changes are required.
+:::
+
+
+
## Working with the Plugin SDK in a monorepo environment {#monorepo}
If you are working with a monorepo environment to develop your plugin, you don't need to use the `watch:link` command because the monorepo workspace setup will handle the symlink. You can use the `watch` command instead.
@@ -183,7 +196,7 @@ This error often occurs when your plugin attempts to import core Strapi function
import { unstable_useContentManagerContext as useContentManagerContext } from '@strapi/strapi/admin';
```
-To resolve the issue, remove `@strapi/strapi` as a dev dependency from your plugin. This ensures that your plugin uses the same instance of Strapi’s core modules as the main application, preventing conflicts and the associated errors.
+To resolve the issue, remove `@strapi/strapi` as a dev dependency from your plugin. This ensures that your plugin uses the same instance of Strapi's core modules as the main application, preventing conflicts and the associated errors.
## Setting a local plugin in a monorepo environment without the Plugin SDK
@@ -194,7 +207,7 @@ In a monorepo, you can configure your local plugin without using the Plugin SDK
### Server entry point
-The server entry point file initializes your plugin’s server-side functionalities. The expected structure for `strapi-server.js` (or its TypeScript variant) is:
+The server entry point file initializes your plugin's server-side functionalities. The expected structure for `strapi-server.js` (or its TypeScript variant) is:
```js
module.exports = () => {
@@ -226,4 +239,4 @@ This object includes methods to register your plugin with the admin application,
:::tip
For a complete example of how to structure your local plugin in a monorepo environment, please check out our .
-:::
+:::
\ No newline at end of file
diff --git a/docusaurus/docs/cms/plugins-development/developing-plugins.md b/docusaurus/docs/cms/plugins-development/developing-plugins.md
index ebfef00f3d..37d59d389d 100644
--- a/docusaurus/docs/cms/plugins-development/developing-plugins.md
+++ b/docusaurus/docs/cms/plugins-development/developing-plugins.md
@@ -47,6 +47,8 @@ Plugins can also be used to add [custom fields](/cms/features/custom-fields) to
+
+
diff --git a/docusaurus/docs/cms/plugins-development/guides/admin-permissions-for-plugins.md b/docusaurus/docs/cms/plugins-development/guides/admin-permissions-for-plugins.md
index 0c176a3c93..5c8bded9b8 100644
--- a/docusaurus/docs/cms/plugins-development/guides/admin-permissions-for-plugins.md
+++ b/docusaurus/docs/cms/plugins-development/guides/admin-permissions-for-plugins.md
@@ -36,13 +36,13 @@ const bootstrap = ({ strapi }) => {
{
section: 'plugins',
displayName: 'Access the overview page',
- uid: 'overview',
+ uid: 'overview.access',
pluginName: 'my-plugin',
},
{
section: 'plugins',
displayName: 'Access the content manager sidebar',
- uid: 'sidebar',
+ uid: 'sidebar.access',
pluginName: 'my-plugin',
},
];
@@ -146,7 +146,7 @@ import pluginPermissions from './permissions';
export default {
register(app) {
app.addMenuLink({
- to: `plugins/${PluginIcon}`,
+ to: `plugins/${PLUGIN_ID}`,
icon: PluginIcon,
intlLabel: {
id: `${PLUGIN_ID}.plugin.name`,
@@ -198,4 +198,4 @@ const Sidebar = () => {
};
export default Sidebar;
-```
+```
\ No newline at end of file
diff --git a/docusaurus/docs/cms/plugins-development/guides/create-components-for-plugins.md b/docusaurus/docs/cms/plugins-development/guides/create-components-for-plugins.md
index e570cb71fa..ca4c2edbcb 100644
--- a/docusaurus/docs/cms/plugins-development/guides/create-components-for-plugins.md
+++ b/docusaurus/docs/cms/plugins-development/guides/create-components-for-plugins.md
@@ -25,6 +25,7 @@ You can create components for your plugins in 2 different ways: using the Conten
### Using the Content-Type Builder
The recommended way to create components for your plugin is through the Content-Type Builder in the admin panel.
+
The [Content-Type Builder documentation](/cms/features/content-type-builder#new-component) provides more details on this process.
### Creating components manually
@@ -54,33 +55,27 @@ Components in Strapi follow the following format in their definition:
}
```
-## Making components visible in the admin panel
+## Component schema example
-To ensure your plugin's components are visible in the admin panel, you need to set the appropriate `pluginOptions` in your component schema:
+A component schema defines the structure of a reusable data fragment. Here is an example of a component schema for a plugin:
-```javascript {9-16}
+```json title="my-plugin/server/components/my-category/my-component.json"
{
- "kind": "collectionType",
- "collectionName": "my_plugin_components",
+ "collectionName": "components_my_category_my_components",
"info": {
- "singularName": "my-plugin-component",
- "pluralName": "my-plugin-components",
- "displayName": "My Plugin Component"
- },
- "pluginOptions": {
- "content-manager": {
- "visible": true
- },
- "content-type-builder": {
- "visible": true
- }
+ "displayName": "My Component",
+ "icon": "align-justify"
},
"attributes": {
"name": {
- "type": "string"
+ "type": "string",
+ "required": true
+ },
+ "description": {
+ "type": "text"
}
}
}
```
-This configuration ensures your components will be visible and editable in both the Content-Type Builder and Content Manager.
+This configuration ensures your components will be available in both the Content-Type Builder and Content Manager when used in a content-type that has `pluginOptions` visibility enabled.
\ No newline at end of file
diff --git a/docusaurus/docs/cms/plugins-development/guides/pass-data-from-server-to-admin.md b/docusaurus/docs/cms/plugins-development/guides/pass-data-from-server-to-admin.md
index e5d4532979..9fb41b5a3b 100644
--- a/docusaurus/docs/cms/plugins-development/guides/pass-data-from-server-to-admin.md
+++ b/docusaurus/docs/cms/plugins-development/guides/pass-data-from-server-to-admin.md
@@ -99,15 +99,15 @@ For instance, within a React component, you could use `useEffect` to get the dat
```js title="/my-plugin/admin/src/components/MyComponent/index.js"
import foobarRequests from "../../api/foobar";
-const [foobar, setFoobar] = useState([]);
+const [foobar, setFoobar] = useState([]);
// …
useEffect(() => {
foobarRequests.getFoobar().then(res => {
- setSchemas(res.data);
+ setFoobar(res.data);
});
}, [setFoobar]);
// …
```
-This would set the `You are in the my-plugin-content-type controller!` text within the `foobar` data of the component's state.
+This would set the `You are in the my-plugin-content-type controller!` text within the `foobar` data of the component's state.
\ No newline at end of file
diff --git a/docusaurus/docs/cms/plugins-development/guides/store-and-access-data.md b/docusaurus/docs/cms/plugins-development/guides/store-and-access-data.md
index 48593324be..b205fd1594 100644
--- a/docusaurus/docs/cms/plugins-development/guides/store-and-access-data.md
+++ b/docusaurus/docs/cms/plugins-development/guides/store-and-access-data.md
@@ -11,12 +11,8 @@ tags:
- plugins development guides
---
-import NotV5 from '/docs/snippets/_not-updated-to-v5.md'
-
# How to store and access data from a Strapi plugin
-
-
To store data with a Strapi [plugin](/cms/plugins-development/developing-plugins), use a plugin content-type. Plugin content-types work exactly like other [content-types](/cms/backend-customization/models). Once the content-type is [created](#create-a-content-type-for-your-plugin), you can start [interacting with the data](#interact-with-data-from-the-plugin).
## Create a content-type for your plugin
@@ -165,9 +161,9 @@ Once you have created a content-type for your plugin, you can create, read, upda
A plugin can only interact with data from the `/server` folder. If you need to update data from the admin panel, please refer to the [passing data guide](/cms/plugins-development/guides/pass-data-from-server-to-admin).
:::
-To create, read, update, and delete data, you can use either the [Entity Service API](/cms/api/entity-service) or the [Query Engine API](/cms/api/query-engine). While it's recommended to use the Entity Service API, especially if you need access to components or dynamic zones, the Query Engine API is useful if you need unrestricted access to the underlying database.
+To create, read, update, and delete data, you can use either the [Document Service API](/cms/api/document-service) or the [Query Engine API](/cms/api/query-engine). While it's recommended to use the Document Service API, especially if you need access to components or dynamic zones, the Query Engine API is useful if you need unrestricted access to the underlying database.
-Use the `plugin::your-plugin-slug.the-plugin-content-type-name` syntax for content-type identifiers in Entity Service and Query Engine API queries.
+Use the `plugin::your-plugin-slug.the-plugin-content-type-name` syntax for content-type identifiers in Document Service and Query Engine API queries.
**Example:**
@@ -183,4 +179,4 @@ let data = await strapi.db.query('plugin::my-plugin.my-plugin-content-type').fin
:::tip
You can access the database via the `strapi` object which can be found in `middlewares`, `policies`, `controllers`, `services`, as well as from the `register`, `boostrap`, `destroy` lifecycle functions.
-:::
+:::
\ No newline at end of file
diff --git a/docusaurus/docs/cms/plugins-development/plugin-sdk.md b/docusaurus/docs/cms/plugins-development/plugin-sdk.md
index 9b8ea97e1c..7698616eb4 100644
--- a/docusaurus/docs/cms/plugins-development/plugin-sdk.md
+++ b/docusaurus/docs/cms/plugins-development/plugin-sdk.md
@@ -1,6 +1,7 @@
---
-title: Plugin SDK
+title: Plugin SDK reference
description: Reference documentation for Strapi's Plugin SDK commands
+pagination_prev: cms/plugins-development/plugin-structure
displayed_sidebar: cmsSidebar
tags:
- backend server
diff --git a/docusaurus/docs/cms/plugins-development/plugin-structure.md b/docusaurus/docs/cms/plugins-development/plugin-structure.md
index 75e60236f7..facf29c7ed 100644
--- a/docusaurus/docs/cms/plugins-development/plugin-structure.md
+++ b/docusaurus/docs/cms/plugins-development/plugin-structure.md
@@ -2,6 +2,8 @@
title: Plugin structure
description: Learn more about the structure of a Strapi plugin
displayed_sidebar: cmsSidebar
+pagination_prev: cms/plugins-development/developing-plugins
+pagination_next: cms/plugins-development/plugin-sdk
tags:
- admin panel
- Command Line Interface (CLI)
diff --git a/docusaurus/docs/cms/plugins-development/server-api.md b/docusaurus/docs/cms/plugins-development/server-api.md
index df6a24bcb6..3b84194e62 100644
--- a/docusaurus/docs/cms/plugins-development/server-api.md
+++ b/docusaurus/docs/cms/plugins-development/server-api.md
@@ -1,6 +1,6 @@
---
title: Server API for plugins
-sidebar_label: Server API
+sidebar_label: Server API reference
displayed_sidebar: cmsSidebar
description: Strapi's Server API for plugins allows a Strapi plugin to customize the back end part (i.e. the server) of your application.
tags:
@@ -21,7 +21,9 @@ tags:
# Server API for plugins
-A Strapi plugin can interact with both the back end and the [front end](/cms/plugins-development/admin-panel-api) of a Strapi application. The Server API is about the back-end part, i.e. how the plugin interacts with the server part of a Strapi application.
+A Strapi plugin can interact with both the back end and the front end of a Strapi application. The Server API is about the back-end part, i.e. how the plugin interacts with the server part of a Strapi application.
+
+For more information on how plugins can modify the front end part of Strapi, see [front end](/cms/plugins-development/admin-panel-api).
:::prerequisites
You have [created a Strapi plugin](/cms/plugins-development/create-a-plugin).
diff --git a/docusaurus/docs/snippets/injection-zones-vs-content-manager-apis.md b/docusaurus/docs/snippets/injection-zones-vs-content-manager-apis.md
new file mode 100644
index 0000000000..4de4f1fb4f
--- /dev/null
+++ b/docusaurus/docs/snippets/injection-zones-vs-content-manager-apis.md
@@ -0,0 +1,55 @@
+:::tip tl;dr
+For adding panels, actions, or buttons to the Content Manager, the [Content Manager APIs](/cms/plugins-development/content-manager-apis) (`addDocumentAction`, `addEditViewSidePanel`, etc.) are often more robust and better typed than injection zones. Use injection zones when you need to insert components into specific UI areas not covered by the Content Manager APIs.
+:::
+
+Content Manager APIs and injection zones are both extension points to customize the admin panel, but they solve different needs:
+
+| Need | Recommended API | Why |
+| --- | --- | --- |
+| Add a custom panel in the Edit View side area | Content Manager API ([`addEditViewSidePanel`](/cms/plugins-development/content-manager-apis#addeditviewsidepanel)) | Best for contextual information or controls that stay visible while editing. |
+| Add actions in a document action menu | Content Manager API ([`addDocumentAction`](/cms/plugins-development/content-manager-apis#adddocumentaction)) | Best for document-level actions in the Edit View actions menu. |
+| Add actions in the Edit View header | Content Manager API ([`addDocumentHeaderAction`](/cms/plugins-development/content-manager-apis#adddocumentheaderaction)) | Best for quick, prominent actions next to the document title. |
+| Add actions for selected entries in List View | Content Manager API ([`addBulkAction`](/cms/plugins-development/content-manager-apis#addbulkaction)) | Best for workflows that apply to multiple entries at once. |
+| Add UI to a predefined zone in a plugin view (localized visual customization) | Injection Zones API ([`injectComponent`](/cms/plugins-development/admin-injection-zones#injecting-into-content-manager-zones)) | Best when you target a specific zone exposed by a plugin. |
+
+For implementation details and up-to-date API signatures, please refer to the file in the Strapi codebase.
+
+
+
+**Mini examples (inside `bootstrap(app)`)**
+
+```js
+// Document action menu item
+app.getPlugin('content-manager').apis.addDocumentAction(() => ({
+ label: 'Run custom action',
+ onClick: ({ documentId }) => runCustomAction(documentId),
+}));
+
+// Edit View header action
+app.getPlugin('content-manager').apis.addDocumentHeaderAction(() => ({
+ label: 'Open preview',
+ onClick: ({ document }) => openPreview(document),
+}));
+
+// List View bulk action
+app.getPlugin('content-manager').apis.addBulkAction(() => ({
+ label: 'Bulk publish',
+ onClick: ({ documentIds }) => bulkPublish(documentIds),
+}));
+
+// Edit View side panel
+app.getPlugin('content-manager').apis.addEditViewSidePanel([
+ {
+ name: 'my-plugin.side-panel',
+ Component: MySidePanel,
+ },
+]);
+
+// Injection zone (plugin-defined zone)
+app.getPlugin('content-manager').injectComponent('editView', 'right-links', {
+ name: 'my-plugin.custom-link',
+ Component: MyCustomLink,
+});
+```
+
+
\ No newline at end of file
diff --git a/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-admin-panel.md b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-admin-panel.md
new file mode 100644
index 0000000000..49ae25c336
--- /dev/null
+++ b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-admin-panel.md
@@ -0,0 +1,5 @@
+:::prerequisites
+Before diving deeper into the concepts on this page, please ensure you have:
+- [created a Strapi plugin](/cms/plugins-development/create-a-plugin),
+- read and understood the basics of the [Admin Panel API](/cms/plugins-development/admin-panel-api)
+:::
\ No newline at end of file
diff --git a/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-server.md b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-server.md
new file mode 100644
index 0000000000..0ea77c60ca
--- /dev/null
+++ b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite-server.md
@@ -0,0 +1,5 @@
+:::prerequisites
+Before diving deeper into the concepts on this page, please ensure you have:
+- [created a Strapi plugin](/cms/plugins-development/create-a-plugin),
+- read and understood the basics of the [Server API](/cms/plugins-development/server-api)
+:::
\ No newline at end of file
diff --git a/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite.md b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite.md
new file mode 100644
index 0000000000..eeede95d09
--- /dev/null
+++ b/docusaurus/docs/snippets/plugins-development-create-plugin-prerequisite.md
@@ -0,0 +1,3 @@
+:::prerequisites
+Before diving deeper into the concepts on this page, please ensure you [created a Strapi plugin](/cms/plugins-development/create-a-plugin).
+:::
\ No newline at end of file
diff --git a/docusaurus/docs/snippets/sdk-plugin-v5-v6.md b/docusaurus/docs/snippets/sdk-plugin-v5-v6.md
new file mode 100644
index 0000000000..78930ad86c
--- /dev/null
+++ b/docusaurus/docs/snippets/sdk-plugin-v5-v6.md
@@ -0,0 +1,23 @@
+:::caution Using SDK Plugin v5 (legacy)
+If you need to continue using the previous build system with `@strapi/pack-up`, you can pin to version 5.x:
+
+
+
+
+
+```bash
+yarn add @strapi/sdk-plugin@5
+```
+
+
+
+
+```bash
+npm install @strapi/sdk-plugin@5
+```
+
+
+
+
+Version 5.x of the SDK plugin supports `packup.config.ts` for custom build configuration. However, v6 is recommended for security updates and simplified configuration.
+:::
\ No newline at end of file
diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js
index 03b7a41e58..a16b32c273 100644
--- a/docusaurus/sidebars.js
+++ b/docusaurus/sidebars.js
@@ -162,7 +162,7 @@ const sidebars = {
{
// APIs
type: 'category',
- label: 'APIs',
+ label: 'Content APIs',
className: 'category-cms-api',
link: { type: 'doc', id: 'cms/api/content-api' },
collapsible: false,
@@ -394,23 +394,23 @@ const sidebars = {
collapsed: true,
customProps: {
updated: false,
- tooltip: 'This section has been reorganized, see details below.',
+ // tooltip: 'This section has been reorganized, see details below.',
},
items: [
- {
- type: 'html',
- value: 'placeholder', // a value is required for the HTML type, but it is not rendered
- customProps: {
- tooltipTitle: `The section has been reorganized`,
- tooltipContent: `We have reorganized the admin panel customization section to make it easier to navigate and find what you need.
-
- The new structure groups customizations by their purpose, making it more intuitive to locate specific settings.
-
- Note:
- Deployment-related configuration, including host, port, and path configuration, has been moved to the Configurations > Admin panel >
Admin panel server page.
-
`,
- },
- },
+ // {
+ // type: 'html',
+ // value: 'placeholder', // a value is required for the HTML type, but it is not rendered
+ // customProps: {
+ // tooltipTitle: `The section has been reorganized`,
+ // tooltipContent: `We have reorganized the admin panel customization section to make it easier to navigate and find what you need.
+ //
+ // The new structure groups customizations by their purpose, making it more intuitive to locate specific settings.
+ //
+ // Note:
+ // Deployment-related configuration, including host, port, and path configuration, has been moved to the Configurations > Admin panel >
Admin panel server page.
+ //
`,
+ // },
+ // },
{
type: 'doc',
id: 'cms/admin-panel-customization',
@@ -487,7 +487,7 @@ const sidebars = {
{
// Plugins
type: 'category',
- label: 'Plugins',
+ label: 'Plugins development',
className: 'category-cms-plugins',
collapsible: false,
collapsed: false,
@@ -497,29 +497,55 @@ const sidebars = {
id: 'cms/plugins/installing-plugins-via-marketplace',
label: 'Marketplace',
},
+ {
+ type: 'doc',
+ label: 'Developing plugins',
+ id: 'cms/plugins-development/developing-plugins',
+ },
{
type: 'category',
- label: 'Plugins development',
+ label: 'Basics',
collapsed: true,
items: [
- {
- type: 'doc',
- label: 'Developing plugins',
- id: 'cms/plugins-development/developing-plugins',
- },
'cms/plugins-development/create-a-plugin',
'cms/plugins-development/plugin-structure',
'cms/plugins-development/plugin-sdk',
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Admin Panel',
+ collapsed: true,
+ items: [
'cms/plugins-development/admin-panel-api',
+ 'cms/plugins-development/admin-navigation-settings',
'cms/plugins-development/content-manager-apis',
+ 'cms/plugins-development/admin-injection-zones',
+ 'cms/plugins-development/admin-redux-store',
+ 'cms/plugins-development/admin-hooks',
+ 'cms/plugins-development/admin-localization',
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Server',
+ collapsed: true,
+ items: [
'cms/plugins-development/server-api',
- 'cms/plugins-development/plugins-extension',
+ ],
+ },
+ {
+ type: 'category',
+ label: 'Guides',
+ collapsed: true,
+ items: [
'cms/plugins-development/guides/pass-data-from-server-to-admin',
'cms/plugins-development/guides/admin-permissions-for-plugins',
'cms/plugins-development/guides/store-and-access-data',
'cms/plugins-development/guides/create-components-for-plugins',
],
},
+ 'cms/plugins-development/plugins-extension',
],
},
@@ -702,338 +728,6 @@ const sidebars = {
],
},
],
- // devDocsRestApiSidebar: [
- // {
- // type: 'link',
- // label: '⬅️ Back to Dev Docs content',
- // href: '/cms/intro'
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'REST API reference',
- // link: {
- // type: 'doc',
- // id: 'cms/api/rest'
- // },
- // items: [
- // {
- // type: 'category',
- // label: 'Endpoints and basic requests',
- // link: {type: 'doc', id: 'cms/api/rest'},
- // collapsed: false,
- // items: [
- // {
- // type: 'link',
- // label: 'Endpoints',
- // href: '/cms/api/rest#endpoints',
- // },
- // {
- // type: 'link',
- // label: 'Get documents',
- // href: '/cms/api/rest#get-all'
- // },
- // {
- // type: 'link',
- // label: 'Get a document',
- // href: '/cms/api/rest#get'
- // },
- // {
- // type: 'link',
- // label: 'Create a document',
- // href: '/cms/api/rest#create'
- // },
- // {
- // type: 'link',
- // label: 'Update a document',
- // href: '/cms/api/rest#update'
- // },
- // {
- // type: 'link',
- // label: 'Delete a document',
- // href: '/cms/api/rest#delete'
- // },
- // ]
- // },
- // {
- // type: 'doc',
- // id: 'cms/api/rest/interactive-query-builder',
- // label: '✨ Interactive Query Builder'
- // },
- // {
- // type: 'doc',
- // id: 'cms/api/rest/parameters'
- // },
- // {
- // type: 'category',
- // label: 'Populate and Select',
- // link: {type: 'doc', id: 'cms/api/rest/populate-select'},
- // collapsed: false,
- // items: [
- // {
- // type: 'link',
- // label: 'Field selection',
- // href: '/cms/api/rest/populate-select#field-selection',
- // },
- // {
- // type: 'link',
- // label: 'Population',
- // href: '/cms/api/rest/populate-select#population',
- // },
- // ]
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'Filters, Locale, Publication State',
- // link: {type: 'doc', id: 'cms/api/rest/filters-locale-publication' },
- // items: [
- // {
- // type: 'link',
- // label: 'Filtering',
- // href: '/cms/api/rest/filters'
- // },
- // {
- // type: 'link',
- // label: 'Complex filtering',
- // href: '/cms/api/rest/filters-locale-publication#complex-filtering',
- // },
- // {
- // type: 'link',
- // label: 'Deep filtering',
- // href: '/cms/api/rest/filters-locale-publication#deep-filtering',
- // },
- // {
- // type: 'link',
- // label: 'Locale',
- // href: '/cms/api/rest/locale',
- // },
- // {
- // type: 'link',
- // label: 'Status',
- // href: '/cms/api/rest/status',
- // },
- // ],
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'Sort and Pagination',
- // link: { type: 'doc', id: 'cms/api/rest/sort-pagination'},
- // items: [
- // {
- // type: 'link',
- // label: 'Sorting',
- // href: '/cms/api/rest/sort-pagination#sorting'
- // },
- // {
- // type: 'link',
- // label: 'Pagination',
- // href: '/cms/api/rest/sort-pagination#pagination'
- // },
- // {
- // type: 'link',
- // label: 'Pagination by page',
- // href: '/cms/api/rest/sort-pagination#pagination-by-page'
- // },
- // {
- // type: 'link',
- // label: 'Pagination by offset',
- // href: '/cms/api/rest/sort-pagination#pagination-by-offset'
- // },
- // ]
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'Relations',
- // link: {type: 'doc', id: 'cms/api/rest/relations'},
- // items: [
- // {
- // type: 'link',
- // label: 'connect',
- // href: '/cms/api/rest/relations#connect'
- // },
- // {
- // type: 'link',
- // label: 'disconnect',
- // href: '/cms/api/rest/relations#disconnect'
- // },
- // {
- // type: 'link',
- // label: 'set',
- // href: '/cms/api/rest/relations#set'
- // },
- // ]
- // },
- // ]
- // },
- // {
- // type: "category",
- // label: "Rest API guides",
- // collapsed: false,
- // link: {
- // type: 'doc',
- // id: 'cms/api/rest/guides/intro',
- // },
- // items: [
- // {
- // type: "doc",
- // label: "Understanding populate",
- // id: 'cms/api/rest/guides/understanding-populate',
- // },
- // {
- // type: "doc",
- // label: "How to populate creator fields",
- // id: 'cms/api/rest/guides/populate-creator-fields',
- // },
- // {
- // type: 'link',
- // label: 'Additional resources',
- // href: '/cms/api/rest/guides/intro#additional-resources'
- // },
- // ],
- // }
- // ],
- // devDocsConfigSidebar: [
- // {
- // type: 'link',
- // label: '⬅️ Back to Dev Docs content',
- // href: '/cms/intro'
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'Configuration',
- // link: {
- // type: 'doc',
- // id: 'cms/configurations',
- // },
- // items: [
- // {
- // type: 'doc',
- // label: 'Introduction to configurations',
- // id: 'cms/configurations',
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // label: 'Base configurations',
- // link: {
- // type: 'doc',
- // id: 'cms/configurations'
- // },
- // items: [
- // 'cms/configurations/database',
- // 'cms/configurations/server',
- // 'cms/configurations/admin-panel',
- // 'cms/configurations/middlewares',
- // 'cms/configurations/api',
- // ]
- // },
- // {
- // type: 'category',
- // label: 'Additional configurations',
- // collapsed: false,
- // link: {
- // type: 'doc',
- // id: 'cms/configurations'
- // },
- // items: [
- // 'cms/configurations/plugins',
- // 'cms/configurations/typescript',
- // 'cms/configurations/api-tokens',
- // 'cms/configurations/functions',
- // 'cms/configurations/cron',
- // 'cms/configurations/environment',
- // 'cms/configurations/sso',
- // 'cms/configurations/features',
- // ]
- // },
- // {
- // type: 'category',
- // label: 'Guides',
- // collapsed: false,
- // link: {
- // type: 'doc',
- // id: 'cms/configurations'
- // },
- // items: [
- // 'cms/configurations/guides/rbac',
- // 'cms/configurations/guides/public-assets',
- // 'cms/configurations/guides/access-cast-environment-variables',
- // 'cms/configurations/guides/access-configuration-values',
- // 'cms/configurations/guides/use-cron-jobs',
- // ]
- // }
- // ]
- // },
- // ],
- // devDocsMigrationV5Sidebar: [
- // {
- // type: 'link',
- // label: '⬅️ Back to Dev Docs content',
- // href: '/cms/intro'
- // },
- // {
- // type: 'category',
- // collapsed: false,
- // link: {
- // type: 'doc',
- // id: 'cms/migration/v4-to-v5/introduction-and-faq'
- // },
- // label: 'Upgrade to Strapi 5',
- // customProps: {
- // new: true,
- // },
- // items: [
- // {
- // type: "doc",
- // label: "Introduction and FAQ",
- // id: "cms/migration/v4-to-v5/introduction-and-faq"
- // },
- // {
- // type: "doc",
- // label: "Step-by-step guide",
- // id: "cms/migration/v4-to-v5/step-by-step"
- // },
- // {
- // type: "doc",
- // label: "Upgrade tool reference",
- // id: 'cms/upgrade-tool',
- // },
- // {
- // type: "category",
- // collapsible: true,
- // collapsed: true,
- // label: "Breaking changes",
- // link: {
- // type: 'doc',
- // id: 'cms/migration/v4-to-v5/breaking-changes'
- // },
- // items: [
- // {
- // type: "autogenerated",
- // dirName: 'cms/migration/v4-to-v5/breaking-changes'
- // },
- // ]
- // },
- // {
- // type: 'category',
- // label: 'Specific resources',
- // collapsed: false,
- // link: { type: 'doc', id: 'cms/migration/v4-to-v5/additional-resources/introduction' },
- // items: [
- // 'cms/migration/v4-to-v5/additional-resources/introduction',
- // 'cms/migration/v4-to-v5/additional-resources/from-entity-service-to-document-service',
- // 'cms/migration/v4-to-v5/additional-resources/plugins-migration',
- // 'cms/migration/v4-to-v5/additional-resources/helper-plugin',
- // ]
- // }
- // ]
- // },
-
- // ]
};
-module.exports = sidebars;
+module.exports = sidebars;
\ No newline at end of file