Magicmark
Strapi plugin

Save the query. Reuse the view.

Magicmark saves Content Manager queries as bookmarks. Apply them again later, or share them with selected admin users and roles.

Strapi ^5.57.0 Admin plugin MIT license

Features

Save Content Manager filters, sorting, search, and pagination, then restore that query from the Magicmark controls.

Save and apply queries

Name and describe bookmarks, add an emoji, and apply saved query state from the Content Manager.

Organize bookmarks

Pin bookmarks and change their order. The plugin also provides search and filtering in its admin view.

Choose who can see a bookmark

Keep a bookmark private, share it with selected admin users or roles, or mark it public for signed-in admins.

Build advanced filters

Use the advanced filter interface to compose multi-condition filters for Content Manager queries.

Install

The package declares Strapi ^5.57.0 as a peer dependency. It does not declare a Node.js engine range. The release workflow uses Node.js 22.

Install from npm
npm install strapi-plugin-magic-mark

Enable the plugin in config/plugins.ts (or config/plugins.js):

config/plugins.ts
export default () => ({
  'magic-mark': {
    enabled: true,
  },
});

Then rebuild the Strapi admin panel with npm run build.

Configuration

No custom setup is needed beyond enabling the plugin. The server configuration currently contains one option:

Magicmark server configuration
OptionDefaultPurpose
debugfalseEnables additional plugin debug logging when set to true.

Bookmark limits are enforced by the plugin's license guard. There are no configuration options for limits, history, or automatic cleanup.

Security and permissions

These routes belong to Strapi's admin API. They are not public Content API endpoints.

  • Admin routes use registered settings.read and settings.update permission scopes. Read routes use the former; write routes use the latter.
  • Every admin route is assigned a registered permission scope. Bookmark controllers reject requests without an authenticated admin; update, delete, pin, and reorder also enforce ownership in the service.
  • Bookmark visibility is limited to its owner, selected users or roles, and bookmarks marked public. Public visibility does not remove admin authentication.
  • The included tests cover unauthenticated creation, route permission scopes, ownership checks, and denied cross-user changes.

The license workflow can contact the package's license service when an admin activates or checks a license. This documentation page does not perform those requests.

Admin API

Paths below are relative to the Strapi admin API route base. Requests require the matching Strapi admin permission.

Magicmark admin API routes
MethodPathPermissionPurpose
GET/magic-mark/bookmarksReadList bookmarks visible to the signed-in admin.
POST/magic-mark/bookmarksUpdateCreate a bookmark.
PUT/magic-mark/bookmarks/:idUpdateEdit an owned bookmark and its sharing settings.
DELETE/magic-mark/bookmarks/:idUpdateDelete an owned bookmark.
POST/magic-mark/bookmarks/:id/pinUpdatePin or unpin an owned bookmark.
POST/magic-mark/bookmarks/reorderUpdateReorder bookmarks owned by the signed-in admin.
GET/magic-mark/roles, /magic-mark/usersReadLoad admin roles and users for sharing.
GET/magic-mark/license/status, /magic-mark/license/limitsReadRead license status and limits.
POST/magic-mark/license/auto-create, /magic-mark/license/create, /magic-mark/license/ping, /magic-mark/license/store-keyUpdateManage license activation and checks.

The source declares no Content API routes. Admin route declarations are in server/src/routes/admin.ts.

Releases and testing

The main-branch release workflow uses semantic-release and publishes this public package to npm. Commit messages follow Conventional Commits.

Run checks locally
npm ci --legacy-peer-deps
npm test
npm run build
npm run verify

The workflow runs those checks before semantic-release. It uses Node.js 22 and an NPM_TOKEN secret to publish.