Commit Graph

8 Commits

Author SHA1 Message Date
Gerhard Scheikl 02a93b502b fix(health): add /healthz route and tighten docker healthcheck 2026-05-08 22:42:09 +02:00
Gerhard Scheikl edd72f2776 feat(invoice): add Send invoice email action
Adds a Send button to the order action extension and a corresponding
"send" op to /api/orders/:orderId/invoice. Generates the invoice on
demand if missing, then sends via the configured SMTP.
2026-05-08 15:27:16 +02:00
Gerhard Scheikl a67fc0767e fix(api): wrap invoice API responses with cors() helper
The order-action / order-block UI extensions are hosted on
extensions.shopifycdn.com and call our app via fetch(). Without CORS
headers the browser blocked the response. authenticate.admin already
returns a cors helper and handles OPTIONS preflight - wrap every
Response with it.
2026-05-08 15:12:52 +02:00
Gerhard Scheikl 58cfc30cd7 fix(build): extract STORED_LOGO_SENTINEL to non-server module
Vite/React Router refused to bundle the client because
app/routes/app.settings.tsx imported the constant from a .server file
and used it inside the route component (not just loader/action), so it
could not be tree-shaken out.

Move the sentinel to logoCache.constants.ts, re-export from
logoCache.server.ts for backwards compatibility, and import the constant
from constants in the route while keeping the server-only functions
(deleteStoredLogo, storeUploadedLogo) imported from .server (they are
only referenced inside the action and get tree-shaken correctly).
2026-05-08 14:41:48 +02:00
Gerhard Scheikl a275197ce4 make app production-ready 2026-05-08 11:01:08 +02:00
Gerhard Scheikl 770c6fd16a many updates :-) 2026-05-08 10:40:19 +02:00
Gerhard Scheikl 5b2aa5d62b first version 2026-04-28 21:56:11 +02:00
Gerhard Scheikl 0f75dbaccb initial version (template only) 2026-04-28 13:34:35 +02:00