Skip to content

v1.20.0: inbound sync, event rename, deploy hardening

Choose a tag to compare

@mhightower932 mhightower932 released this 18 Jun 19:13
0224c65

"Inbound sync, event rename, and deploy hardening" release. Three threads.

BREAKING: webhook event rename

transfer.completed/1 and adjustment.applied/1 are retired and replaced by the entity-prefixed names connectors filter on:

transfer.completed   -> inventorytransfer.completed
adjustment.applied   -> inventoryadjusted.completed

Payload shapes are unchanged, so a consumer migrates by subscribing to the new event_type. Every emit site emits only the new name. cycle_count.adjusted/1 is kept (it carries variance detail the canonical event does not) and now rides alongside inventoryadjusted.completed on the cycle-count branch. The inventoryadjusted.completed/1 schema permits a null applied_by_user_external_id for the system-driven inbound path.

Added

  • Inbound inventory sync (#392): POST /api/v1/inbound/inventory_update takes a desired final quantity, computes the delta against current on-hand, and applies it as an APPROVED adjustment emitting the adjustment event; idempotent (same target = 0-delta no-op). Scoped by a new inventory_update inbound resource key. The per-token inbound rate limit is env-configurable via INBOUND_RATE_LIMIT_PER_MINUTE (default 500).

Changed

  • Source-system external_ids in webhook payloads (#392): outbound *_external_id fields now carry the source-system identifier the upstream connector pushed (resolved from cross_system_mappings), not Sentry's internal canonical UUID, so consumers no longer round-trip the Sentry API per event. The canonical UUID stays on the envelope aggregate_id; falls back to the canonical UUID when no mapping exists.
  • Deploy portability (#394): admin/nginx.conf becomes a ${API_UPSTREAM_*}-templated config so one image deploys across environments; the api image bakes db/mappings/ so Pipe B inbound works without a volume mount; gunicorn's worker timeout is raised to 60s.

Notes

No migrations this release. No mobile changes; the mobile build stays at version 1.19.0 (versionCode 9).