hono-worker-tracking-d1 (Example)
한국어 번역본이 없어 영문 예제 문서를 표시합니다.
Cloudflare Workers + Hono example for:
- message send via
k-msg(KMsg) - delivery tracking persistence via D1
Setup
섹션 제목: “Setup”cd examples/hono-worker-tracking-d1bun installcp .dev.vars.example .dev.varsFill .dev.vars:
IWINV_API_KEY=...IWINV_SMS_API_KEY=...IWINV_SMS_AUTH_KEY=...IWINV_SMS_SENDER_NUMBER=01000000000TRACKING_ADMIN_TOKEN=local-admin-tokenD1 binding
섹션 제목: “D1 binding”Update wrangler.jsonc:
d1_databases[0].database_named1_databases[0].database_id
DeliveryTrackingService.init() creates required tables/indexes automatically.
Tracking schema
섹션 제목: “Tracking schema”Table: kmsg_delivery_tracking
- PK:
message_id - Core:
provider_id,provider_message_id,type,to,from,status - Timing:
requested_at,status_updated_at,next_check_at,sent_at,delivered_at,failed_at,last_checked_at,scheduled_at - Metadata:
attempt_count,provider_status_code,provider_status_message,last_error,raw,metadata
Indexes:
idx_kmsg_delivery_due(status, next_check_at)idx_kmsg_delivery_provider_msg(provider_id, provider_message_id)idx_kmsg_delivery_requested_at(requested_at)
Run local dev
섹션 제목: “Run local dev”bun run devRoutes
섹션 제목: “Routes”POST /send/smsGET /tracking/:messageIdPOST /tracking/run-once
Sample requests
섹션 제목: “Sample requests”Send:
curl -X POST http://127.0.0.1:8787/send/sms \ -H "content-type: application/json" \ -d '{ "to":"01012345678", "text":"hello from d1 tracking", "from":"01000000000" }'Get tracking record:
curl http://127.0.0.1:8787/tracking/<MESSAGE_ID>Run one tracking poll pass:
curl -X POST http://127.0.0.1:8787/tracking/run-once \ -H "x-admin-token: local-admin-token"