Closed k-macmillan closed 1 month ago
Hey team! Please add your planning poker estimate with Zenhub @coreycarvalho @cris-oddball @EvanParish @k-macmillan @kalbfled @MackHalliday @mchlwellman
I've started writing tests for this and since the blocking ticket is now merged, I am starting implementation work.
I made some good progress today, but I have a few questions I'll have to run by Kyle / team tomorrow before I can finish this work.
I did some testing yesterday and it's looking promising so far! There were a couple things I wanted to look into today before opening the PR for review, so I'm just wrapping that up.
QA PASSED
[x] Regression in Perf passes
[x] Service callbacks still function as before if a notification is sent without a callback.
[x] Notification callback w/ service callback results in a logged message, 'Callback successfully sent for notification', only the notification callback is issued, not the service callback, and includes the header 'x-enp-signature'
"id": "83613921-56ad-4d11-947d-0470ff19d10f",
No logs seen for the service callback for this notification.
[x] Notification callback w/o service callback results in a logged message, 'Callback successfully sent for notification' and includes the header 'x-enp-signature'
"id": "49af13bb-44a9-4728-8b5a-16472d100d61",
[x] Notification callback that returns 4xx that is not a 429 is not retryable w/ log 'sending callback for notification' and 'will not retry' (note there are a lot of 4xx errors, pick a few)
Using pipedream service for these:
400 "id": "52dd4e52-e8ff-4e90-a8bb-c9c8a8e263f0"
401 "id": "916170eb-8582-4ac5-92df-e1eba8ec8d84",
404 "id": "8a83d276-7a00-4162-9f31-13da585c0376",
also the following for each
[x] Notification callback that returns 429 is retryable w/ log 'Retryable error sending callback for notification'
"id": "d4ac43be-fb78-4dfd-9f14-9699bcdec35e",
'
[x] Notification callback that returns 5xx is retryable w/ log 'Retryable error sending callback for notification' "id": "e8467a74-2784-430b-9f35-b70e79109440",
User Story - Business Need
As part of the work to enhance client experience and reduce opportunities for silent failures, we are enabling a
callback_url
as part of the notification request. If there is acallback_url
in the Notification object it will supersede any service-level callback.User Story(ies)
As a Service using VA Notify I want to be able to specify callbacks at the request-level So that we have more agency
Additional Info and Resources
The
check_and_queue_callback_task
method was only built with service callbacks in mind.Acceptance Criteria
callback_url
based logic is in a separate methodcheck_and_queue_callback_task
calls one method or the othercreate_delivery_status_callback_data_v3
methodgenerate_callback_signature
methodQA Considerations
Edge cases such as invalid URLs or clients rejecting the request due to validation.
Potential Dependencies