Skip to content

Conversation

@gpt-partners
Copy link

@gpt-partners gpt-partners commented Oct 29, 2025

Summary

This PR adds HMAC-based authentication for Shopify App Proxy requests to ensure only verified requests from Shopify are processed by the server.

Changes
• Added verifyShopifyProxySignature() helper to validate incoming app proxy requests.
• Integrated signature validation into the route loader for all GET/POST proxy endpoints.
• Improved request flow to reject unauthenticated requests early with 401 Invalid signature or 400 Missing signature.
• Refactored route handler to separate:
• History access requests (/chat/history/proxy)
• SSE streaming requests (text/event-stream)
• Standard chat completion handling
• Enhanced error handling and response structure for better debugging and security.
• Added clean modular imports for getCustomerAccountByFund(), createHistoryService(), and createChatService().

Why

Shopify App Proxy endpoints are publicly accessible.
Without signature validation, malicious actors could spoof requests or manipulate data.
This update secures the integration layer, ensuring all traffic truly originates from Shopify.

Testing
• Verified successful HMAC validation for genuine proxy requests.
• Confirmed 401 rejection for invalid or missing signatures.
• Validated normal chat and SSE behavior remains unaffected post-authentication.
• Manual tests performed via browser proxy and CLI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant