Webhook — def-exsport-webhook
App Express kecil yang menerima callback dari third party lalu mempublish ulang tiap callback ke SNS topic. Ini sisi fan-out masuk dari integrasi.
Cara halaman ini diverifikasi
Dibaca pada 2026-09-15 dari index.js dan package.json. Checkout lokal: /Volumes/xpro/erisristemena/nodejs/def-exsport-webhook.
Stack
Express 5.1, plain JavaScript (index.js, tanpa TypeScript), aws-sdk 2, axios, dotenv. Node ≥ 20. Script: start = node index.js, dev = nodemon index.js. Port dari APP_PORT (default 3000). Punya Dockerfile. Single-branch: main only — commit langsung di situ, dan tetap auto-deploy saat push (deploy/prod.sh).
Apa yang dilakukan
Route diberi prefix APP_PREFIX kalau diset. GET / dan GET di tiap path callback mengembalikan ok (health). Tiga callback POST masuk, masing-masing dipublish ulang ke SNS topic berbeda lewat SNS.publish:
| Callback | Route | Env SNS topic |
|---|---|---|
| WMS / stock | POST /inventory | SNS_TOPIC_WMS_ARN |
| Biteship | POST /delivery | SNS_TOPIC_DELIVERY_ARN |
| DOKU | POST /payment | SNS_TOPIC_PAYMENT_ARN |
Tiap handler mencatat header dan body, lalu mempublish Message: JSON.stringify(req.body). AWS dikonfigurasi dari AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.
SNS topic dan subscription-nya didefinisikan di Pulumi stack webhook. Lihat Third parties untuk bagaimana callback ini sampai ke handler webhooks/* di backend.