Skip to content

refactor: use S3S#12

Draft
alukach wants to merge 9 commits intomainfrom
refactor/use-s3s
Draft

refactor: use S3S#12
alukach wants to merge 9 commits intomainfrom
refactor/use-s3s

Conversation

@alukach
Copy link
Member

@alukach alukach commented Mar 11, 2026

I'm highly skeptical that this will work...

@github-actions
Copy link

🚀 Latest commit deployed to https://multistore-proxy-pr-12.development-seed.workers.dev

  • Date: 2026-03-11T18:19:34Z
  • Commit: a5feef7

alukach and others added 5 commits March 11, 2026 12:17
Delete ServerForwarder, AppState, request_handler, and axum_helpers.
Rename run_s3s() to run(). Remove ProxyBackend impl from ServerBackend
(only StoreFactory needed). Drop unused deps (axum, futures,
http-body-util, oidc-provider, etc.).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace LambdaForwarder + ProxyGateway with s3s service. Add
StoreFactory impl for LambdaBackend. Remove ProxyBackend impl,
ReqwestHttpExchange, and OIDC/STS dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace ProxyGateway + WorkerForwarder + JsBody with S3Service.
Remove ProxyBackend impl, FetchHttpExchange, OIDC/STS route handlers.
Rate limiting and bandwidth metering are temporarily disconnected
pending s3s middleware adapters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove the legacy ProxyGateway-based request pipeline now that all
three runtimes (server, lambda, workers) use the s3s-based
MultistoreService.

Deleted core modules:
- proxy.rs (1,144 lines) — the main ProxyGateway orchestrator
- forwarder.rs — runtime-agnostic HTTP forwarding trait
- middleware.rs — composable middleware chain (Middleware, Next, DispatchContext)
- route_handler.rs — pre-dispatch request interception (RouteHandler, ProxyResult)
- router.rs — path-based route matching via matchit
- auth/sigv4.rs — SigV4 parsing/verification (now handled by s3s)
- auth/identity.rs — identity resolution from SigV4 headers
- auth/tests.rs — integration tests for the above auth modules
- backend/request_signer.rs — outbound SigV4 request signing
- backend/multipart.rs — multipart upload URL construction
- api/request.rs — S3 request parsing into typed operations

Deleted dependent code:
- sts/route_handler.rs — STS route registration on legacy Router
- oidc-provider/route_handler.rs — OIDC discovery route registration
- cf-workers/rate_limit.rs — rate limiting via legacy Middleware

Simplified:
- backend/mod.rs — removed ProxyBackend trait and RawResponse
- metering/lib.rs — removed MeteringMiddleware (kept UsageRecorder/QuotaChecker traits)
- oidc-provider/backend_auth.rs — removed Middleware impl (kept resolve logic)
- auth/mod.rs — kept only authorize and TemporaryCredentialResolver

Removed unused deps from core: uuid, base64, hex, hmac, sha2, matchit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update crate-layout.md and core README.md to reflect the removal of
the legacy ProxyGateway pipeline and migration to s3s-based
MultistoreService.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
s3s's default access check rejects all unsigned requests with
"Signature is required" when auth is configured. Add MultistoreAccess
implementing S3Access to allow anonymous requests through, since
authorization (including anonymous access per bucket) is handled by
BucketRegistry::get_bucket() inside each S3 operation handler.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@alukach alukach force-pushed the main branch 3 times, most recently from befe0ca to 0e8b416 Compare March 13, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant