Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e085ab1
refactor: normalize logstore driver interface
alexluong Jan 21, 2026
11e73de
refactor: introduce LogEntry message type for logmq
alexluong Jan 21, 2026
5165c20
refactor: move batch processor from builder to logmq package
alexluong Jan 21, 2026
9ed6ff0
refactor: rename RetryMessage to RetryTask
alexluong Jan 21, 2026
4bcec3a
refactor: introduce DeliveryTask and update message queue flow
alexluong Jan 21, 2026
3e97fbd
refactor: remove DeliveryEvent type and legacy API handlers
alexluong Jan 21, 2026
45af900
docs: update README and comments to reflect DeliveryEvent removal
alexluong Jan 21, 2026
7a0972a
refactor: remove delivery_event_id column and legacy API docs
alexluong Jan 21, 2026
7a370fa
docs: generate config
alexluong Jan 21, 2026
9277a3f
refactor: change InsertMany to accept []*LogEntry
alexluong Jan 21, 2026
da4bd25
refactor: move retry event data query into retry flow (#654)
alexluong Jan 26, 2026
63c7c06
test: redis testcontainer flakiness
alexluong Jan 26, 2026
622f3a7
refactor: rename Delivery to Attempt in core + API layer
alexluong Jan 26, 2026
f8098c9
test: rename Delivery → Attempt in all test files
alexluong Jan 26, 2026
78f3ed5
chore: add database migrations for Delivery → Attempt rename
alexluong Jan 26, 2026
2ef43d2
docs: rename Delivery to Attempt in OpenAPI spec
alexluong Jan 26, 2026
fc4a57f
feat: rename Delivery to Attempt in UI components
alexluong Jan 26, 2026
caa2fd7
chore: fix Delivery → Attempt rename inconsistencies
alexluong Jan 26, 2026
da1ca94
chore: remove redundant inline comments
alexluong Jan 26, 2026
067e35a
Merge pull request #661 from hookdeck/rename-delivery-attempt
alexluong Jan 27, 2026
4dac6b9
Merge branch 'main' into model-delivery-event
alexluong Jan 27, 2026
1e2381b
chore: add destination-scoped attempts routes, rename attempt_number,…
alexluong Jan 29, 2026
3957515
chore: opanapi.yaml
alexluong Jan 29, 2026
ca00b5c
test: e2e tests for attempt_number
alexluong Jan 29, 2026
3f33830
chore: rename portal attempt route
alexluong Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .outpost.yaml.dev
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,9 @@ portal:
# ID Generation
idgen:
type: "nanoid"
event_prefix: "evt_"
destination_prefix: "des_"
delivery_prefix: "dlv_"
delivery_event_prefix: "dev_"
attempt_prefix: "atm"
destination_prefix: "des"
event_prefix: "evt"

# Concurrency
publish_max_concurrency: 1
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
TEST?=./...
TEST?=./internal/...
RUN?=

# Build targets
Expand Down
21 changes: 21 additions & 0 deletions cmd/e2e/destwebhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1467,6 +1467,27 @@ func (suite *basicSuite) TestDeliveryRetry() {
// Wait for retry to be scheduled and attempted (poll for at least 2 delivery attempts)
suite.waitForMockServerEvents(t, destinationID, 2, 5*time.Second)

// Wait for attempts to be logged, then verify attempt_number increments on automated retry
suite.waitForAttempts(t, "/tenants/"+tenantID+"/attempts", 2, 5*time.Second)

atmResponse, err := suite.client.Do(suite.AuthRequest(httpclient.Request{
Method: httpclient.MethodGET,
Path: "/tenants/" + tenantID + "/attempts?dir=asc",
}))
require.NoError(t, err)
require.Equal(t, http.StatusOK, atmResponse.StatusCode)

atmBody := atmResponse.Body.(map[string]interface{})
atmModels := atmBody["models"].([]interface{})
require.GreaterOrEqual(t, len(atmModels), 2, "should have at least 2 attempts from automated retry")

// Sorted asc by time: attempt_number should increment (0, 1, 2, ...)
for i, m := range atmModels {
attempt := m.(map[string]interface{})
require.Equal(t, float64(i), attempt["attempt_number"],
"attempt %d should have attempt_number=%d (automated retry increments)", i, i)
}

// Cleanup
resp, err = suite.client.Do(suite.AuthRequest(httpclient.Request{
Method: httpclient.MethodDELETE,
Expand Down
Loading
Loading