27 Commits

Author SHA1 Message Date
chaim 258a5b8136 release: v1.3.2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v1.3.2
2026-04-06 20:01:28 +00:00
chaim 3dc5c4e571 fix: move Data Migration from separate 'customDev' section to 'customization'
Avoid creating separate admin panel sections for each extension.
All custom settings go under the existing "התאמה אישית" section.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 20:01:13 +00:00
chaim 8b745bc99f release: v1.3.1 v1.3.1 2026-03-29 21:34:25 +00:00
chaim 384d7c6df0 fix: add clientModule to module.json for client-side template resolution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 21:33:48 +00:00
chaim 49275d0fc9 release: v1.3.0 v1.3.0 2026-03-29 20:38:33 +00:00
chaim ec759b89c1 feat: snapshot management UI — list and delete database snapshots
- ListBackups API now returns snapshots alongside backups
- DeleteBackup API accepts snapshot- prefixed names
- New "Database Snapshots" panel in admin UI with delete buttons
- i18n: English + Hebrew translations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:38:33 +00:00
chaim d5fe6c21a0 release: v1.2.4 v1.2.4 2026-03-29 20:31:11 +00:00
chaim 54e8c77325 fix: proper type coercion for raw SQL import columns
Read column metadata (type, nullable, default) from SHOW COLUMNS and
coerce values accordingly: empty string/false → 0 for NOT NULL numeric
columns, null for nullable ones. Fixes is_internal import error.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:31:11 +00:00
chaim 35cda6e91c release: v1.2.3 v1.2.3 2026-03-29 20:28:56 +00:00
chaim ba00e7ecf6 fix: convert empty strings to null for integer/bool columns
MySQL strict mode rejects empty string '' for integer columns like
is_internal. Convert '' and false to null before SQL insert.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:28:56 +00:00
chaim e3a1be1844 release: v1.2.2 v1.2.2 2026-03-29 20:25:54 +00:00
chaim fd279b6c8b fix: skip columns missing in target DB during raw SQL import
When importing entities with autoincrement (Case, Charge, Invoice),
validate each column exists in the target table before inserting.
Columns from modules not installed on the target are silently skipped
and reported in the import log summary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:25:54 +00:00
chaim 73b5907539 release: v1.2.1 v1.2.1 2026-03-29 20:22:05 +00:00
chaim edeef544d4 fix: mysqldump SSL and tablespace errors in snapshot
Add --ssl=false and --no-tablespaces flags to handle Docker MySQL
connections with self-signed certificates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:22:05 +00:00
chaim 1964ad99b6 release: v1.2.0 v1.2.0 2026-03-29 20:14:13 +00:00
chaim 078b2e6051 fix: toDb() crash on import + add snapshot before import
- Fix: replace QueryComposer::toDb() (protected) with camelCaseToUnderscore
  for table name resolution — was causing 500 on real import
- Feat: optional database snapshot (mysqldump) before import with UI checkbox
  (checked by default). Snapshot saved to data/backups/snapshot-{timestamp}/
- Feat: skip entity types whose module is not installed (import resilience)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:14:08 +00:00
chaim a57e23dec3 release: v1.1.4 v1.1.4 2026-03-29 20:06:18 +00:00
chaim a8c4a2ebe1 feat: add skip attachment files option for import
Allows importing only database records without restoring attachment
files. Useful when migrating data between instances.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:06:12 +00:00
chaim 412b1e643b release: v1.1.3 v1.1.3 2026-03-29 20:01:24 +00:00
chaim eed25a87b2 fix: skip entity types whose module is not installed during import
Prevents 500 error when importing a backup that contains entities
(e.g. SignatureRequest) from modules not installed on the target instance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:01:20 +00:00
chaim 838ef5c2c6 release: v1.1.2 v1.1.2 2026-03-29 19:51:08 +00:00
chaim 319e2df45e fix: move admin panel item to customDev section
Move Data Migration from system section to unified "Custom Development"
section shared by all custom extensions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:50:59 +00:00
chaim dc2d6c57fe release: v1.1.1 v1.1.1 2026-03-29 19:48:11 +00:00
chaim 4c3ec67a7d fix: use __APPEND__ in adminPanel to not overwrite system items
Without __APPEND__, the itemList replaced all existing system admin
panel entries instead of adding to them.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:48:07 +00:00
chaim 70ec6e0fee release: v1.1.0 v1.1.0 2026-03-29 19:45:36 +00:00
chaim 6d6f5d571a feat: add admin UI for export/import data migration
- Admin panel page at #Admin/dataMigration with two-column layout
- Export: filter by case status, skip attachments option, progress + log
- Import: select backup, preserve IDs / skip duplicates, dry run support
- List/delete existing backups with full manifest details
- 5 API endpoints (status, export, import, listBackups, deleteBackup)
- BufferedIO adapter to capture CLI output for API responses
- Admin-only access on all endpoints
- i18n: English + Hebrew (fa_IR) translations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:45:20 +00:00
chaim e08eca7eb3 feat: initial DataMigration extension for case data backup/restore
Full case data migration tool with 3 console commands:
- data-migration-export: exports all case-related entities (27 types) + files
- data-migration-import: restores backup to target DB with dry-run support
- data-migration-status: shows entity counts from live DB or backup

Supports preserve-ids, skip-duplicates, batch processing, and attachment
file copying. Imports with hooks disabled to prevent side effects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v1.0.0
2026-03-28 19:50:46 +00:00