feat: add encrypted relay webhook inboxes #633

Merged
dries merged 1 commit from factory/encrypted-webhook-inboxes into main 2026-09-12 22:01:15 +02:00
Owner

Summary

  • add enrollment-protected webhook inbox registration with role-separated hashed credentials
  • encrypt exact webhook bodies and request metadata to age X25519 recipients before object-store persistence
  • add authenticated snapshot-cursor listing, ciphertext fetch, and idempotent acknowledgment

Testing

  • make test-backend
  • make lint
  • go test -race ./internal/relay ./cmd/ocman-relay
  • go test -cover ./internal/relay
## Summary - add enrollment-protected webhook inbox registration with role-separated hashed credentials - encrypt exact webhook bodies and request metadata to age X25519 recipients before object-store persistence - add authenticated snapshot-cursor listing, ciphertext fetch, and idempotent acknowledgment ## Testing - make test-backend - make lint - go test -race ./internal/relay ./cmd/ocman-relay - go test -cover ./internal/relay
feat: add encrypted relay webhook inboxes
All checks were successful
CI / Frontend (pull_request) Successful in 8m40s
CI / Playwright E2E (pull_request) Successful in 9m36s
CI / Backend (pull_request) Successful in 12m53s
CI / Coverage Results (pull_request) Successful in 24s
CI / Build (pull_request) Successful in 5m31s
CI / Semantic Tag (pull_request) Successful in 6s
870c2a5c3e
dries changed title from WIP: feat: add encrypted relay webhook inboxes to feat: add encrypted relay webhook inboxes 2026-09-12 17:21:13 +02:00

Coverage ratchet: ✅ pass

Suite Baseline This PR Δ
frontend 75.98% 75.98% +0.00 ✅
go 82.80% 82.70% -0.10 ✅

Tolerance: -0.1%. Baseline stored on gh-pages.

<!-- coverage-ratchet --> ### Coverage ratchet: ✅ pass | Suite | Baseline | This PR | Δ | | |---|---|---|---|---| | frontend | 75.98% | 75.98% | +0.00 | ✅ | | go | 82.80% | 82.70% | -0.10 | ✅ | _Tolerance: -0.1%. Baseline stored on `gh-pages`._
dries merged commit 252b956af2 into main 2026-09-12 22:01:15 +02:00
Sign in to join this conversation.
No description provided.