Commit Graph

15 Commits

Author SHA1 Message Date
chaim d0b87b16dc fix: use semver comparison for extension version upgrades
Previously the system used simple string inequality to detect available
updates, causing downgrades to appear as upgrades (e.g. 2.5.1 → 2.5.0).
Now both backend (SQL) and frontend (JS) compare version tuples properly.
Also fixes latest_version in DB on registry sync startup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:05:15 +00:00
chaim 9aaee609cb fix: hide deploy button for extensions without a published version
Extensions like LegalAssistance that are in the registry but haven't
been published yet (latest_version is null) now show "אין גרסה"
instead of a deploy button. Batch deploy also skips them.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 07:17:59 +00:00
chaim f8026afed4 fix: improved error display - show step, HTTP code, Hebrew messages; sync errors shown to user; deployment log shows error details 2026-03-30 21:00:43 +00:00
chaim 2cbb9aaa65 feat: auto-assign extensions + form validation
- Backend: new customers auto-get all active extensions assigned
- Frontend: required field validation (name, URL, credentials)
- Frontend: removed manual "add extension" dropdown (auto-assigned)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:02:05 +00:00
chaim 09ef629b8d fix: customer form auth fields layout + sticky header opacity
- Auth fields: use grid-cols-2 with dir=ltr for proper username/password
  layout, better spacing and visual hierarchy with key icon
- Header: increase opacity to 0.95 with subtle shadow to prevent
  content showing through when scrolling

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 09:34:27 +00:00
chaim 7aca2abf78 feat: add delete customer + fix auth form UX
- Backend: DELETE /api/customers/:id removes customer + extensions + logs
- Frontend: delete button on customer detail with confirmation
- Auth form: only sends espocrm_api_key when credentials are entered

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 09:27:19 +00:00
chaim ad386f5cef feat: add username/password fields to customer form for Espo auth
Instead of manually entering base64, users can now type username and
password which auto-generates the Espo-Authorization header value.
Empty credentials on edit won't overwrite existing API key.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 09:20:40 +00:00
chaim a11ddb82a6 fix: sync now resets installed_version when extension removed from server
- Backend: sync_customer_extensions now sets installed_version=NULL when
  extension is missing_on_server (previously only detected drift without
  updating DB)
- Frontend: refresh button now calls /sync endpoint before reloading,
  ensuring the dashboard reflects actual server state

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 09:02:11 +00:00
chaim 98db6899db feat: UI improvements - default to customers tab, refresh button, installed extensions first 2026-03-28 19:30:40 +00:00
chaim 22b05617d4 feat: install order, dependency blocking, batch install
- Sort extensions by install order (HebrewLanguage first, then deps)
- Grey out extensions with missing dependencies (show lock icon + "נדרש: X")
- Checkbox selection for batch install with progress indicator
- "בחר הכל" button to select all installable extensions
- Server returns dependencies + install_order in customer API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:44:56 +00:00
chaim eea011d68a fix: cancel button on form, edit customer, show installed/total count 2026-03-26 08:20:51 +00:00
chaim 72c3087dd0 redesign: apply Stitch design system — Heebo font, glass header, Material icons, editorial tables 2026-03-26 07:56:11 +00:00
chaim ccb467ebaa fix: show update button only when newer version available 2026-03-26 06:57:48 +00:00
chaim 4638763ee1 feat: structured extensions table in customer detail view
4 columns: name, installed version, available update, actions
Actions: install (if not installed), update + remove (if installed)
2026-03-26 06:50:35 +00:00
chaim 5e0e5f1066 Extension Platform: API server + React dashboard
- Python API server with Gitea-based build (no local files needed)
- PostgreSQL on Coolify internal network
- React + Vite + Tailwind dashboard
- Endpoints: /publish, /deploy, /deploy-all, /api/*
- Dockerfile: multi-stage (Node build + Python runtime)
2026-03-26 04:53:01 +00:00