npm package: @kreatifklub/directus-extension-meilisearch-plugin
Description: Directus extension to Meilisearch synchronization (UI + hooks + reindex)
Author: kreatifklub.com
Latest version: 0.1.0

# Directus Meilisearch Plugin

> Powerful Meilisearch integration for Directus with full UI
> configuration, automatic sync, and reindex support.

------------------------------------------------------------------------

## 🚀 Features

-   🔄 Automatic sync on create / update / delete
-   🗂 Choose which collections to index
-   🧩 Select specific fields
-   🔍 Apply Directus filters before indexing
-   🔁 Manual reindex button
-   📊 Reindex job tracking
-   ⚙️ Auto-creates required Directus schema
-   🧠 Smart sync architecture
-   🚀 Marketplace installable

------------------------------------------------------------------------

## 📦 Requirements

-   Directus `^11.0.0`
-   Meilisearch server running
-   Environment variables configured

------------------------------------------------------------------------

## 🛠 Installation

### Option 1 --- Install from Directus Marketplace (Recommended)

1.  Go to **Settings → Marketplace**
2.  Search for **Directus Meilisearch Plugin**
3.  Click **Install**

> If your Directus instance blocks API extensions, set:
>
>     MARKETPLACE_TRUST=all

------------------------------------------------------------------------

### Option 2 --- Install via npm (Self-hosted)

``` bash
pnpm add @kreatifklub/directus-meilisearch-plugin
```

Then restart Directus.

------------------------------------------------------------------------

## ⚙️ Environment Variables

Configure these in your Directus environment:

    MEILI_HOST=http://meilisearch:7700
    MEILI_ADMIN_KEY=your_master_key_here

### Railway Example

In Railway → Directus Service → Variables:

    MEILI_HOST=https://your-meili-url
    MEILI_ADMIN_KEY=xxxxx
    MARKETPLACE_TRUST=all

Then redeploy.

------------------------------------------------------------------------

## 🧩 How It Works

### 1️⃣ Configure Index

Go to:

**Settings → Meilisearch Sync**

Create a new configuration:

-   Select collection
-   Choose fields
-   Add optional filter
-   Enable sync

### 2️⃣ Automatic Sync

The plugin listens to:

-   items.create
-   items.update
-   items.delete

And syncs automatically to Meilisearch.

### 3️⃣ Manual Reindex

Click **Reindex** to rebuild the entire index.

Job progress is visible in the Jobs panel.

------------------------------------------------------------------------

## 🗄 Data Model

The plugin automatically creates:

### `meili_indexes`

Stores index configurations.

### `meili_jobs`

Tracks reindex progress.

No manual schema setup required.

------------------------------------------------------------------------

## 🔐 Security

-   Only admins can manage sync settings
-   Uses Meilisearch Admin API key
-   Supports Directus permission filtering
-   Respects collection filters before indexing

------------------------------------------------------------------------

## 🧠 Architecture

This plugin is a Directus **Bundle Extension**:

-   Module (Admin UI)
-   Hook (Sync logic)
-   Endpoint (Reindex API)
-   Schema bootstrap

Built with:

-   Vue 3
-   TypeScript
-   Directus Extension SDK
-   Meilisearch JS SDK

------------------------------------------------------------------------

## 🛠 Development

    pnpm install
    pnpm run build

------------------------------------------------------------------------

## 📌 Version Compatibility

  Plugin Version   Directus
  ---------------- ----------
  0.0.x            \^11.0.0

------------------------------------------------------------------------

## 📄 License

MIT

------------------------------------------------------------------------

## 👤 Author

KreatifKlub\
https://kreatifklub.com

------------------------------------------------------------------------

## 🗺 Roadmap

-   [ ] Batch indexing optimization
-   [ ] Soft-delete handling
-   [ ] Multi-language support
-   [ ] Advanced transform mapping UI
-   [ ] Search analytics dashboard