Skip to content

Latest commit

 

History

History
19 lines (15 loc) · 1.28 KB

File metadata and controls

19 lines (15 loc) · 1.28 KB

Clarifications — Shopify Product Update Webhook Service

User Choices (Gate 0 Q&A)

  • HMAC verification: Skipped — endpoint accepts any well-formed JSON, no Shopify signature check.
  • Data handling: Log the payload to stdout (structured JSON logging), return 200. No persistence, no downstream calls.
  • Dockerfile: Production-grade — multi-stage build, non-root user, health check, pinned versions.

Assumptions (confirmed by user)

  • Single endpoint: POST /webhooks/shopify/product-update
  • FastAPI app structure: app/ package with main.py (app factory) and routers/webhooks.py — standard FastAPI layout, not a single-file script
  • Pydantic model for the incoming payload — validates top-level Shopify product fields but doesn't validate every nested field (Shopify's schema is large and versioned; strict full validation is fragile)
  • GET /health endpoint for Docker health checks and load balancer probes
  • Python 3.12, pip (not Poetry/pdm — keeps the Dockerfile simpler)
  • Structured JSON logging via structlog — each webhook payload logged as a single JSON line for easy ingestion by log shippers
  • No retry queue, no background tasks — just receive, log, 200
  • No database, no docker-compose — single container
  • English-only error messages, no i18n