strapi-content-sync-pro 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,53 @@
1
1
  # Content Sync Pro Plugin for Strapi
2
2
 
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/logo-horizontal.svg" alt="Content Sync Pro" width="720" />
5
+ </p>
6
+
3
7
  A powerful Strapi v5 plugin to copy, migrate, and live-sync content, media, and data between multiple Strapi environments.
4
8
 
5
9
  [![npm version](https://badge.fury.io/js/strapi-content-sync-pro.svg)](https://www.npmjs.com/package/strapi-content-sync-pro)
6
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
11
 
12
+ ## Video
13
+
14
+ Plugin intro: https://youtu.be/hr3dD6dLgLQ
15
+
16
+ <a href="https://youtu.be/hr3dD6dLgLQ" target="_blank" rel="noopener noreferrer">
17
+ <img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20160506.png" alt="Content Sync Pro � watch the intro video" width="100%" />
18
+ </a>
19
+
20
+ ## Screenshots
21
+
22
+ <details>
23
+ <summary>View screenshots</summary>
24
+
25
+ <br />
26
+
27
+ <table>
28
+ <tr>
29
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20160506.png" alt="Content Sync Pro - screenshot 1" width="100%" /></td>
30
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20160558.png" alt="Content Sync Pro - screenshot 2" width="100%" /></td>
31
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20175903.png" alt="Content Sync Pro - screenshot 3" width="100%" /></td>
32
+ </tr>
33
+ <tr>
34
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20175931.png" alt="Content Sync Pro - screenshot 4" width="100%" /></td>
35
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180001.png" alt="Content Sync Pro - screenshot 5" width="100%" /></td>
36
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180041.png" alt="Content Sync Pro - screenshot 6" width="100%" /></td>
37
+ </tr>
38
+ <tr>
39
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180116.png" alt="Content Sync Pro - screenshot 7" width="100%" /></td>
40
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180135.png" alt="Content Sync Pro - screenshot 8" width="100%" /></td>
41
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180202.png" alt="Content Sync Pro - screenshot 9" width="100%" /></td>
42
+ </tr>
43
+ <tr>
44
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180228.png" alt="Content Sync Pro - screenshot 10" width="100%" /></td>
45
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180251.png" alt="Content Sync Pro - screenshot 11" width="100%" /></td>
46
+ <td width="33%"><img src="https://raw.githubusercontent.com/eharain/strapi-content-sync-pro/master/docs/Screenshot%202026-04-20%20180301.png" alt="Content Sync Pro - screenshot 12" width="100%" /></td>
47
+ </tr>
48
+ </table>
49
+ </details>
50
+
8
51
  ## Features
9
52
 
10
53
  - **Bi-directional Content Sync** - Push, pull, or sync both ways (Local wins, Remote wins, or Latest wins).
@@ -17,7 +60,7 @@ A powerful Strapi v5 plugin to copy, migrate, and live-sync content, media, and
17
60
  - **Alerts & Logging** - Detailed sync logs. Receive success/failure alerts via Email (using Strapi's email provider) or Webhooks.
18
61
  - **Secure Communication** - API token authentication combined with HMAC-SHA256 request signing using a shared secret.
19
62
 
20
- ## Installation
63
+ ## Prerequisites
21
64
 
22
65
  - Strapi v5.0.0 or higher
23
66
  - Node.js 20.0.0 or higher
@@ -61,7 +104,7 @@ npm run develop
61
104
  2. Go to **Configuration** tab
62
105
  3. Enter your remote server details:
63
106
  - **Base URL**: The remote Strapi instance URL (e.g., `https://api.example.com`)
64
- - **API Token**: Generate from remote Strapi's Settings API Tokens
107
+ - **API Token**: Generate from remote Strapi's Settings ? API Tokens
65
108
  - **Instance ID**: Unique identifier for this instance
66
109
  - **Shared Secret**: Same secret on both instances for HMAC signing
67
110
 
@@ -115,14 +158,14 @@ Configure **when** sync runs in the Sync tab:
115
158
 
116
159
  Full media synchronization between Strapi instances:
117
160
 
118
- - **URL Strategy** (HTTP) Works with any upload provider (local, S3, Cloudinary). Downloads and re-uploads via the Upload API.
119
- - **rsync Strategy** Host-level file copy using the `rsync` binary. Fastest for local-provider setups with SSH access.
120
- - **Profile-based** Create media sync profiles with direction, conflict strategy, MIME filters, filename patterns, and execution settings.
121
- - **DB + File Sync** Syncs both the `plugin::upload.file` database rows and the actual file bytes.
161
+ - **URL Strategy** (HTTP) Works with any upload provider (local, S3, Cloudinary). Downloads and re-uploads via the Upload API.
162
+ - **rsync Strategy** Host-level file copy using the `rsync` binary. Fastest for local-provider setups with SSH access.
163
+ - **Profile-based** Create media sync profiles with direction, conflict strategy, MIME filters, filename patterns, and execution settings.
164
+ - **DB + File Sync** Syncs both the `plugin::upload.file` database rows and the actual file bytes.
122
165
 
123
166
  ## Enforcement
124
167
 
125
- Pre-sync validation (Configuration Enforcement):
168
+ Pre-sync validation (Configuration ? Enforcement):
126
169
 
127
170
  - **Schema Match** - Verify content type schemas match (strict/compatible/none)
128
171
  - **Version Check** - Verify Strapi versions (exact/minor/major/none)
@@ -130,7 +173,7 @@ Pre-sync validation (Configuration → Enforcement):
130
173
 
131
174
  ## Alerts
132
175
 
133
- Get notified of sync events (Configuration Alerts):
176
+ Get notified of sync events (Configuration ? Alerts):
134
177
 
135
178
  - **Strapi Logs** - Logs to sync log and server console
136
179
  - **Email** - Requires Strapi email plugin configured
@@ -191,6 +234,14 @@ Check the **Logs** tab for detailed sync history including:
191
234
  - Direction (push/pull)
192
235
  - Status and error messages
193
236
 
237
+ ## Security & Privacy
238
+
239
+ - **No usage tracking.** This plugin does not collect, transmit, or store any analytics or telemetry data.
240
+ - **Credential handling.** The optional "Generate Token" feature lets you authenticate to **your own** remote Strapi server to create an API token. Credentials are sent directly from your browser to your server via the plugin's backend proxy, used once, and **never stored** on disk, in the database, or in memory after the request completes.
241
+ - **API Tokens** are encrypted at rest using Strapi's built-in store.
242
+ - **HMAC-SHA256** signatures protect all inter-instance requests from tampering.
243
+ - **Masked secrets** � API tokens and shared secrets are masked (`��������`) in all API responses.
244
+
194
245
  ## Contributing
195
246
 
196
247
  Contributions are welcome! Please open an issue or submit a pull request.