You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ce2c853
Browse filesBrowse the repository at this point in the historyBrowse files
fix(billing): make AWS Marketplace notices durable and carry licenses across agreement replacements
- Team notices and the buyer confirmation go through the outbox, enqueued in the transaction that
changes the license, so a failed send is retried and reconcile never waits on email. Every writer
decides under its row lock whether terms moved, dimension included, and a new registration tells
the team at once.
- A license with no entitlements yet is pending, not lapsed: it holds a claim, the buyer can leave
contact details, and taking it waits for a read that says it is current. The notice reports
whether the License Updated event has arrived. A Deprovisioned event the read contradicts stays
queued, and a verification recording inactive clears the claim.
- Agreement replacement keys on previousAgreementId, works in either arrival order, hands the
owner on to the new license, refuses a late A to B over B to C, and uses the event time so a
redelivered license event cannot roll the agreement back. A superseded license ending does not
ask the team to cancel. Advisory events reach the team.
- Provisioning stays manual. The buyer is told the account is being set up, to wait, the
turnaround, and the contact. The team notice says to provision with payment collection paused
and never to invoice through Stripe, and names the cancel flow for a lapse. An admin route lists
unlinked licenses and links one, with audit.
- Status for account-only buyers, and billing hides plan entry points while a license is active.
The link card shows a masked account and the signed-in email with no preselected organization,
and the claim lasts 4 hours.
- Clients use request timeouts and SDK default retries, signing through fromHttp from
@aws-sdk/credential-providers. Each license of an ended agreement gets its own read bound. The
fulfillment URL always answers with a redirect and takes only URL-encoded forms.
0 commit comments