A webhook signature that had to survive a key rotation

Rotating a signing secret without coordinating a deploy with four integrators, which is what sending several signatures is for.

X-Signature: t=1739980861,
  v1=8c1f4a7e9b2d0e6a3f5c7b9d1e3a5c7b9d1e3a5c...,
  v1=4a7e8c1f0e6a9b2d7b9d3f5c5c7b1e3a3a5c9d1e...

two signatures, two secrets, both valid for a 30-day
overlap. a subscriber accepts if EITHER matches.

the rotation:
  day 0   add the new secret; both are sent
  day 30  remove the old one
  and nothing on the subscriber's side changes at all

The overlap turns a rotation from an event requiring coordination into a scheduled job, which is the difference between rotating annually and rotating never. It also requires the subscriber to have implemented the multiple-signature check, which is documented and which two of four had not — so the first rotation was also an audit of who had read the documentation.