Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 11 additions & 3 deletions services/auth-bridge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ future rollout step requires exact-head verification and recorded authority.
| `POST` | `/v1/admin/config-attestation` | Server-only digest of security-relevant runtime configuration. |
| `POST` | `/v1/farcaster/miniapp/webhook` | Verifies signed add/remove and notification enable/disable events; returns exact `200`. |
| `POST` | `/v1/admin/admission-notification` | Separate-secret Hermes hook; rechecks live admission and queues one exact-epoch alert. |
| `POST` | `/v1/admin/admission-notification-status` | Separate-secret, token-free delivery diagnostics for one exact FID. |

The legacy public `/v1/farcaster/challenge` and `/v1/farcaster/exchange` routes
are retired in the local contract and return `410 legacy_auth_retired`; they do
Expand Down Expand Up @@ -388,6 +389,12 @@ within 366 days. Signed opt-outs remain accepted while delivery is paused and
erase raw token material immediately. Each send rechecks the exact current
admission epoch; stable notification IDs, retry ceilings, replay tombstones,
and bounded epoch receipts make retries idempotent.
The operator-only status projection contains only queue state, the admission
epoch, aggregate attempt counts, static retry categories, and the next retry
time. It never returns a notification token, delivery URL, webhook payload, or
provider response. Delivery parsing accepts Farcaster's optional additive
`failedTokens` field, ignores harmless provider metadata, and still rejects
invalid reasons, contradictory known outcome categories, and token mismatches.

The production browser and Pages activation gate separately pin the exact bridge
and issuer `https://auth.warpkeep.com`, audience `warpkeep-spacetimedb`, and the
Expand Down Expand Up @@ -467,9 +474,10 @@ request/response, or symmetric secret. `/v1/admin/token`,
`Authorization: Bearer <ADMIN_TOKEN_SECRET>`, reject browser `Origin` headers,
emit no admin CORS headers, and are only for a server-side operator process.
Never expose their credential or response to frontend code.
`/v1/admin/admission-notification` has the same no-Origin/no-CORS boundary but
uses only `NOTIFICATION_OPERATOR_SECRET`; it never accepts the general admin
secret. The public webhook accepts no browser Origin and trusts only a valid
`/v1/admin/admission-notification` and its token-free `-status` companion have
the same no-Origin/no-CORS boundary but use only
`NOTIFICATION_OPERATOR_SECRET`; neither accepts the general admin secret. The
public webhook accepts no browser Origin and trusts only a valid
Farcaster JFS envelope whose app key agrees across both configured Hubs and is
active on-chain. Both configured Optimism RPCs are queried with bounded retries:
matching answers are required when both respond, one healthy view may serve as
Expand Down
9 changes: 5 additions & 4 deletions services/auth-bridge/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions services/auth-bridge/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ allowBuilds:
# Remove after Miniflare stops pinning vulnerable sharp versions below 0.35.0.
overrides:
"miniflare@4.20260708.1>sharp": 0.35.3
# Miniflare's pinned Undici release is raised to the patched 7.x line.
"miniflare@4.20260708.1>undici": 7.29.0
# Vite's compatible range otherwise resolves to a PostCSS release affected by
# GHSA-566m-qj78-rww5. Keep this exact until the toolchain raises its floor.
postcss: 8.5.25
Loading