Repository navigation
sdk-ruby-v0.5.0
·
109 commits
to main
since this release
Added
Ankusa.verify_signature(headers, body, secrets, tolerance_seconds: 300, now: nil)
verifies the Standard Webhooks signature an HTTP sink with asecretadds,
comparing withOpenSSL.fixed_length_secure_compare; failures raise
Ankusa::InvalidSignatureError(code,field, never retryable).Ankusa::MessageandAnkusa.decode_message(data), plus
Ankusa::InvalidMessageError(withcode,fieldandretryable?false):
decode and validate the v1 queue message every sink delivers — the inline
(body_base64) and claim-check (claim) body forms,sha256,
dedupe_key,replay_id, and the forwardedheaders, ignoring unknown
keys.Message#idempotency_key/HookHeaders#idempotency_key, the key to store
in a processed-ids table: the key Ankusa shipped (the message's
idempotency_keyfield, or thex-ankusa-idempotency-keyheader), and for a
message or delivery that predates ittenant:source_id:dedupe_key(tenant
defaultwhen there is none) when adedupe_keyis set, elseid, with an
optional#replay:<replay_id>suffix (include_replay: true). The decoded
field stays into_h[:idempotency_key].HookHeaders#dedupe_key/#replay_id/#idempotency_key's field, parsed
fromx-ankusa-dedupe-key/x-ankusa-replay-id/x-ankusa-idempotency-key.AdminClient#create_replay,#get_replay,#list_replaysand
#update_replayfor thePOST/GET/PATCH /v1/replaysreplay-job API (kinds
dlq,archive,quarantine).
Changed
ClaimCheckClient#redeemraisesClaimCheckUnavailableError(retryable)
for a gateway408or429instead ofClaimRejectedError.
Removed
AdminClient#replay_dead_letters, replaced by the replay-job API above.
POST /v1/dlq/replayno longer exists.