Skip to content

[pull] main from hookdeck:main#150

Merged
pull[bot] merged 2 commits into
erickirt:mainfrom
hookdeck:main
Jun 16, 2026
Merged

[pull] main from hookdeck:main#150
pull[bot] merged 2 commits into
erickirt:mainfrom
hookdeck:main

Conversation

@pull

@pull pull Bot commented Jun 16, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

alexluong and others added 2 commits June 16, 2026 11:31
* fix(test): make up/test self-contained — drop dead outpost network, pin localstack

`make up/test` broke after the dev-stack unify (#930) removed the external
`outpost` network and `make network`. The test compose still pinned its
default network to `external: outpost`, so the project failed to start.

The test suite reaches every service via mapped localhost ports (.env.test),
never by container DNS, so the shared network was never load-bearing. Drop
the override and let the `outpost-test` project auto-create
`outpost-test_default` — which also matches what redis-cluster-compose expects.

Also pin localstack to `:3`; `:latest` now resolves to a 2026.x build that
gates startup on a Pro license token. The 3.x community line runs
s3/sns/sts/sqs/kinesis free.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(e2e): sync webhook signature config to default (no timestamp)

The e2e basic config forced a timestamped signature template
(t={{.Timestamp.Unix}},v0=...) left over from before #808. That refactor
removed timestamps from the default templates and updated the mock server
to verify the bare default (v0= over {{.Body}}), but never updated this
override — so signing and verification diverged.

The mismatch was masked for months because compose reuses the cached
`outpost-mock` image; it only surfaced on a fresh mock rebuild. Drop the
override so e2e exercises the real product default and matches the mock.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test(apirouter): rotation without invalid_at must re-apply 24h default

Extends the rotation test: rotate with an explicit
previous_secret_invalid_at, then rotate again without one. The second
rotation must default to now+24h, but the stored window is carried
forward instead — the Update handler merge-patches stored credentials
into the request before Preprocess, so rotateSecret mistakes the stored
timestamp for a caller-provided one. Once that timestamp is in the
past, every plain rotation produces an already-expired previous secret.

Failing test; fix follows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(destwebhook): re-apply 24h rotation default by reading the request, not merged state

The Update handler merge-patches stored credentials into the
destination before Preprocess, so on any rotation after the first
rotateSecret saw the stored previous_secret_invalid_at as
caller-provided and skipped the documented now+24h default. Once the
stored timestamp was in the past, every subsequent plain rotation
produced an already-expired previous secret, which
ObfuscateDestination then stripped from API responses.

Give Preprocess the caller's view of the provider-owned fields via
PreprocessDestinationOpts.Request (config and credentials exactly as
sent, before merging), and have rotateSecret read the custom
invalidation window from there instead of inferring intent from the
merged map. Applies to both webhook providers (legacy and standard),
which duplicate the rotation logic.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jun 16, 2026
@pull pull Bot added the ⤵️ pull label Jun 16, 2026
@pull pull Bot merged commit 25ddeea into erickirt:main Jun 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant