Zum Inhalt springen

Changelog

Alle Änderungen und Verbesserungen an SQL2REST.

v1.1.88

May 2026 Latest

AI Listing Optimizer

  • +Optimize JTL product titles and descriptions with your own AI key. Local, GDPR-compliant, BYOK for OpenAI, Anthropic, and Gemini. No token markup.
  • +Source Hub launcher: open the Optimizer from the Local DB tile as a fullscreen overlay. Active source threaded through every step.
  • +Editable Vorschau step: review and tweak the rendered prompt per product before launching the run. Hard cap in EUR or tokens pauses the run if it overshoots.
  • +Per-product approval grid: approve, reject, edit inline, or regenerate a single row with a tweaked prompt. Click anywhere on the generated card to enter edit mode. Embedded Amazon SERP preview shows how the new title looks.
  • +Ameise CSV export at a fixed path with "Open in Explorer" button. UTF-8 with BOM by default, CP1252 fallback.
  • +History tab with DPAPI-encrypted per-run audit drill-down. Each row stores the exact prompt that was sent to the LLM. Crash-resume on next launch.

Source Hub

  • +Clickable status chip: click "Aktiv" to stop the SQL2REST Windows service, click "Offline" to start it. No more dropping into services.msc.
  • +Post-install auto-redirect: when the wizard finishes installing the service, it forwards you to the running production port with a visible "Open Source Hub" CTA.

Bug Fixes

  • API key now persists across browser tabs and reinstalls via localStorage. Previously cleared on tab close, forcing you to redo the post-install handshake.
  • Setup-token refresh no longer storms the server in normal mode: in-flight dedupe, 5s failure backoff, and an early skip when an API key is already loaded.
  • Token totals on the Run step now include failed rows. Previously the live KPI showed 0 output tokens even though per-row cards displayed them.

Notes

  • Setup docs: /docs/optimizer/ · Sales page: /use-cases/ai-listing-optimizer/
  • If you were on v1.1.86 or older, re-run the setup wizard once after updating so the new ProductDescription column is available to the Optimizer's {beschreibung} variable.

v1.1.86

May 2026

Bug Fixes

  • Attribute filter results now always include the attributes object. When you filter by ?attribute[farbe]=rot, each product in the response already carries its attributes.
  • Fixed setup wizard failing to create Merkmale views (vw_merkmale_catalog, vw_article_merkmale) due to an ORDER BY clause not allowed in SQL Server views.

v1.1.85

May 2026

Attributes (Merkmale)

  • +New endpoint: GET /attributes returns the full Merkmale catalog grouped by name
  • +Products embed an attributes object: GET /products/{sku} returns {"Farbe": ["Rot"], "Größe": ["M"]}
  • +List opt-in: GET /products?include=attributes avoids N+1 when needed
  • +Filter products by attribute: GET /products?attribute[farbe]=rot, multiple filters AND-combined
  • +Advanced mode: ?advanced=true exposes JTL_AttributeId and JTL_ValueId for write-back via the official JTL API
  • +Hide individual attributes via the [MERKMALE] Disabled= entry in config.ini

MCP Server

  • +Two new MCP tools for AI assistants: list_attributes and filter_products_by_attribute
  • Total now 15 tools and 2 resources

Notes

  • Requires re-running the setup wizard to create the new vw_merkmale_catalog and vw_article_merkmale views
  • Translations are baked at view-creation time (German by default). Runtime Accept-Language switching is not active yet

v1.1.81

April 2026

Stock & IDs

  • +New endpoint: GET /products/{sku}/stock - per-warehouse stock breakdown
  • +Stock response includes SKU, AvailableStock, ReservedStock, IncomingStock, BlockedStock, JTL_ProductId
  • +Internal JTL IDs exposed across entities for write-back via JTL's official API: JTL_CustomerId, JTL_SalesOrderId, JTL_ItemId, JTL_DeliveryNoteId, JTL_ShipmentId, JTL_ProductId
  • +Internal-ID fields sit under an "Advanced" collapsible in the wizard, default disabled. The JTL_ prefix makes their purpose explicit at a glance

Filtering

  • +Exact-match filter ?customer_number= on /customers and /orders
  • +Exact-match filter ?sku= on /products
  • /stock?sku= filter now works - previously failed with "Filter column not available"

Reliability

  • +Auto-restart on crash via NSSM service config
  • /health now returns HTTP 503 with per-mandant detail when any DB connection fails - was always 200
  • Driven by production feedback from early adopters - thank you for reporting these edge cases

v1.1.79

April 2026

Addresses

  • +Orders now include nested BillingAddress and ShippingAddress objects
  • +Customers now include a nested Address object
  • +Sync endpoints also include nested addresses
  • Fields: Street, PostalCode, City, Country, CompanyName, FirstName, LastName

Delivery Notes (Lieferscheine)

  • +New endpoint: GET /delivery-notes
  • +Search: GET /delivery-notes?search=TEXT
  • +Detail with line items: GET /delivery-notes/{number}
  • +Include items: ?include=items for ArticleNumber, ArticleName, Quantity
  • Supports partial shipments (one order, multiple delivery notes)

Search & Filtering

  • ?page= now works on all list endpoints
  • +/orders supports ?search=, ?order_number=, ?external_order_id=
  • +/invoices and /shipments support ?search=

Documentation

  • +/docs, /redoc, /openapi.json now available in production mode

v1.1.69

April 2026

Custom Fields (Eigene Felder)

  • +Custom fields automatically discovered during setup
  • Supports article, customer, and order custom fields
  • Toggle fields on/off in the setup wizard
  • Values appear with CF_ prefix in API responses

Invoice Improvements

  • +Invoices include linked order number (OrderNumber)
  • +Filter by order: GET /invoices?order_number=12345
  • Improved PDF matching for invoice numbers with hyphens

Order & Shipment Improvements

  • +Order number on shipments and order items
  • +Filter sync/orders by order number
  • Improved payment status detection across JTL versions

Setup Wizard

  • +Configurable API port (default: 8000)
  • Clearer descriptions for unmapped fields
  • Improved re-run handling on existing installations

v1.1.x

March 2026

Auto-Update System

  • +One-click updates from within the setup wizard
  • +Live progress streaming during download
  • Automatic service restart after update

Compatibility

  • +Automatic column detection across all JTL-Wawi versions (1.5 - 2.0)
  • +Dynamic JOIN building adapts to your database structure
  • Case-insensitive matching for schemas and columns
  • Fixed duplicate rows in customer views

Website & Docs

  • +Documentation at sql2rest.com/docs
  • +Blog, use-case pages, bilingual content

v1.0.0

February 2026

Initial Release

  • +Read-only REST API for JTL-Wawi databases
  • +Auto-discovery wizard detects JTL version and maps fields
  • 7 endpoints: customers, orders, order items, invoices, products, stock, shipments
  • Pre-joined sync views for CRM integrations
  • Field-level privacy controls, pagination, filtering, sorting
  • API key authentication, read-only SQL user
  • Supports JTL-Wawi 1.5, 1.6, 1.8, 1.9, 1.10, 1.11, and 2.0