strapi-plugin-bulk-updater 1.0.1 → 1.1.0

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.
Files changed (32) hide show
  1. package/README.md +41 -24
  2. package/dist/_chunks/{BulkUpdater-CooMo-Hc.js → BulkUpdater-BRcMQGP3.js} +507 -67
  3. package/dist/_chunks/BulkUpdater-BRcMQGP3.js.map +1 -0
  4. package/dist/_chunks/{BulkUpdater-R78pX-om.mjs → BulkUpdater-BSZP0U18.mjs} +514 -74
  5. package/dist/_chunks/BulkUpdater-BSZP0U18.mjs.map +1 -0
  6. package/dist/_chunks/ScopedQuotaSelectInput-ChWrQIBV.mjs +183 -0
  7. package/dist/_chunks/ScopedQuotaSelectInput-ChWrQIBV.mjs.map +1 -0
  8. package/dist/_chunks/ScopedQuotaSelectInput-s4oUMLgK.js +201 -0
  9. package/dist/_chunks/ScopedQuotaSelectInput-s4oUMLgK.js.map +1 -0
  10. package/dist/_chunks/SettingsPage-BRGTrW9H.js +43 -0
  11. package/dist/_chunks/SettingsPage-BRGTrW9H.js.map +1 -0
  12. package/dist/_chunks/SettingsPage-ieu-Out8.mjs +43 -0
  13. package/dist/_chunks/SettingsPage-ieu-Out8.mjs.map +1 -0
  14. package/dist/_chunks/ValidationRulesTab-BGcqM9cN.mjs +598 -0
  15. package/dist/_chunks/ValidationRulesTab-BGcqM9cN.mjs.map +1 -0
  16. package/dist/_chunks/ValidationRulesTab-BoqhoTjo.js +597 -0
  17. package/dist/_chunks/ValidationRulesTab-BoqhoTjo.js.map +1 -0
  18. package/dist/admin/index.js +19 -3
  19. package/dist/admin/index.js.map +1 -1
  20. package/dist/admin/index.mjs +19 -3
  21. package/dist/admin/index.mjs.map +1 -1
  22. package/dist/server/index.js +30491 -270
  23. package/dist/server/index.js.map +1 -1
  24. package/dist/server/index.mjs +30481 -270
  25. package/dist/server/index.mjs.map +1 -1
  26. package/package.json +10 -3
  27. package/dist/_chunks/BulkUpdater-CooMo-Hc.js.map +0 -1
  28. package/dist/_chunks/BulkUpdater-R78pX-om.mjs.map +0 -1
  29. package/dist/_chunks/SettingsPage-C6QyloJe.js +0 -176
  30. package/dist/_chunks/SettingsPage-C6QyloJe.js.map +0 -1
  31. package/dist/_chunks/SettingsPage-Drb7s719.mjs +0 -176
  32. package/dist/_chunks/SettingsPage-Drb7s719.mjs.map +0 -1
package/README.md CHANGED
@@ -54,9 +54,9 @@ Strapi allows editing entries individually or applying bulk actions within a sin
54
54
  - **Tier 2 (Strapi Enterprise Bridge)**: Bridges events directly to native Strapi Enterprise Audit Logs (`admin::audit-logs`).
55
55
  - **Tier 3 (Custom Declarative Schema)**: Custom collection types and declarative column mappings.
56
56
  - **Deterministic Rollback**: Restores exact prior values and relationship links using Strapi v5 Document Service.
57
+ - 🎯 **UI-Configurable Cross-Component Validation & Quotas**: Real-time cross-component quota enforcement (e.g. max one H1 heading across dynamic zones) configurable straight from the admin UI.
57
58
  - 🌓 **Adaptive Light & Dark Theme Design**: Built with native `@strapi/design-system` tokens with high-contrast text and sticky viewport-constrained modals.
58
59
  - ⚡ **Zero-Infra Strapi Cloud Ready**: In-memory caching, pod-level high-watermark ETags, zero external Redis/SQL requirements.
59
- - 💎 **Pro Monetization Tier**: License key activation, Regex Find & Replace within attributes, and priority SLA.
60
60
 
61
61
  ---
62
62
 
@@ -183,26 +183,37 @@ npm run develop
183
183
 
184
184
  ---
185
185
 
186
- ## 💎 Monetization & License Tiers
187
-
188
- | Feature | Community (Free) | Pro / Enterprise Tier |
189
- | :--- | :---: | :---: |
190
- | Dynamic schema & attribute introspection | ✅ | ✅ |
191
- | Cross-collection selection | ✅ | ✅ |
192
- | Conditional schema validation & skip safety | ✅ | ✅ |
193
- | Live execution report | ✅ | ✅ |
194
- | Draft & Publish control | ✅ | ✅ |
195
- | Per-collection column visibility | ✅ | ✅ |
196
- | Relational field bulk updates | ✅ | ✅ |
197
- | 3-Tier Audit Trail & Rollback | ✅ | ✅ |
198
- | Enterprise Maker-Checker flow | ✅ | ✅ |
199
- | Timezone-aware off-peak scheduling | ✅ | ✅ |
200
- | **Regex Find & Replace within attributes** | ❌ | ✅ |
201
- | **Audit log export (CSV / JSON)** | ❌ | ✅ |
202
- | **Commercial License & Priority SLA** | ❌ | ✅ |
203
-
204
- ### License Activation
205
- Enter your license key in **Settings > Bulk Updater License** to unlock Pro features.
186
+ ## 🎯 UI-Configurable Validation & Quota Rules & Legacy Violation Scanner
187
+
188
+ Define dynamic semantic constraints across components and dynamic zones right from the Strapi UI:
189
+
190
+ - Navigate to **Bulk Attribute Updater > Validation & Quota Rules** or **Settings > Bulk Updater Settings**.
191
+ - Click **Create Rule**.
192
+ - Set **Rule Name**, **Target Field Identifier** (e.g. `headingLevel`), and configure **Option Quotas** (e.g. `h1` = 1, `h2` = 3).
193
+ - Toggle rules on/off or delete them at any time. Rules take effect immediately in both the Strapi Admin content editing form and backend Document Service create/update validations.
194
+ - **Legacy Violation Scanner**:
195
+ - Click **Scan Violations** on any active rule card to instantly audit all existing legacy entries across target content types.
196
+ - Review non-compliant records and exact violation reasons (e.g. `Found 2 occurrences of "h1", exceeds quota limit of 1`).
197
+ - Click **Export Violations (CSV)** directly from the modal to take the affected records offline for correction or batch re-import.
198
+
199
+ ---
200
+
201
+ ## 📊 CSV Export / Import & Override Engine
202
+
203
+ For high-volume operations or legacy data remediation, the plugin includes a full-featured CSV Management Center:
204
+
205
+ 1. **Direct Workspace Export**:
206
+ - On the primary workspace table, click the **Export CSV** button on any collection card to download the currently filtered view directly to your workstation.
207
+ 2. **Dedicated CSV Manager Tab**:
208
+ - Switch to the **CSV Import / Export** tab in the plugin header.
209
+ - Select any registered collection type.
210
+ - **Download Template**: Get a ready-to-use CSV file pre-populated with all schema column headers.
211
+ - **Export All Records**: Download the complete dataset with a single click.
212
+ - **Export Violations**: Filter and export only records violating a selected Validation Rule.
213
+ 3. **Flexible Import Modes**:
214
+ - **Update Existing Records (`documentId` matching)**: Match entries by `documentId` and selectively update specific scalar fields and relation references without touching other attributes.
215
+ - **Add / Override Multiple Records**: Insert fresh records in bulk directly from your spreadsheet without requiring pre-existing IDs.
216
+ - **Dry-Run Audit**: Real-time validation audit shows total rows parsed, records updated vs created, and immediate error reporting before committing to the database.
206
217
 
207
218
  ---
208
219
 
@@ -221,9 +232,15 @@ All routes are mounted under `/bulk-updater` and protected by Strapi Admin authe
221
232
  | `POST` | `/bulk-updater/pending-batches/:id/execute` | Executes an approved or off-peak queued batch. |
222
233
  | `GET` | `/bulk-updater/audit/history` | Fetches audit log history and diffs. |
223
234
  | `POST` | `/bulk-updater/audit/:batchId/rollback` | Rolls back a batch to its prior state. |
224
- | `GET` | `/bulk-updater/license` | Checks current license status. |
225
- | `POST` | `/bulk-updater/license/verify` | Activates and verifies a Pro license key. |
226
- | `POST` | `/bulk-updater/license/deactivate` | Deactivates an active Pro license key. |
235
+ | `GET` | `/bulk-updater/validation-rules` | Retrieves all UI-configured validation and quota rules. |
236
+ | `POST` | `/bulk-updater/validation-rules` | Creates or updates a validation and quota rule. |
237
+ | `DELETE` | `/bulk-updater/validation-rules/:id` | Deletes a validation rule. |
238
+ | `POST` | `/bulk-updater/validation-rules/:id/toggle` | Toggles rule active status. |
239
+ | `POST` | `/bulk-updater/validation-rules/:id/scan` | Scans all existing records in target content types for violations. |
240
+ | `GET` | `/bulk-updater/csv/template/:uid` | Generates a blank CSV template with content type headers. |
241
+ | `GET` | `/bulk-updater/csv/export/:uid` | Exports all records for a collection type as CSV. |
242
+ | `GET` | `/bulk-updater/csv/export-violations/:ruleId` | Exports only records violating the specified rule as CSV. |
243
+ | `POST` | `/bulk-updater/csv/import` | Parses and applies or inserts records from uploaded CSV data. |
227
244
 
228
245
  ---
229
246