Skip to content

EdgeZero migration Phase 4 — Handlers to extractors #844

Open

Description

@aram356

Description

Phase 4 of the EdgeZero migration tracker #840: move named Trusted Server route handlers toward EdgeZero #[action] functions and request extractors where the supported EdgeZero version provides the required capabilities. The existing Fastly adapter still dispatches through NamedRouteHandler and constructs per-request RuntimeServices; corresponding routes exist in the other adapters. This is a broad adapter/core API migration, so retain route behavior and access controls.

Current evidence

crates/trusted-server-adapter-fastly/src/app.rs defines NamedRouteHandler, dispatches its variants, and builds RuntimeServices for a request. The original ticket cites docs/superpowers/specs/2026-07-02-edgezero-full-migration-design.md §5, but that file is absent from the current checkout. The current workspace pins EdgeZero v0.0.8; verify the actual State<T>/FromRequest API and upstream Phase 0 status before committing to a final extractor signature.

Proposed scope

Inventory named routes across adapters, then migrate proxy, publisher, auction, request-signing, and EC endpoints in reviewable slices. Keep EC lifecycle and pre-route filters as middleware. Remove adapter dispatch shims and RuntimeServices only once their call sites and tests no longer need them. Decide separately whether the integration proxy router belongs in this phase (the original tracker marked it optional Phase 4b).

Done when

  • A route matrix shows every named route's current and intended handler, required state/store extraction, and access control.
  • Supported named routes use the agreed EdgeZero action/extractor approach, or any exception is explicitly documented.
  • Per-adapter shims and service plumbing made obsolete by the migration are removed.
  • Route parity, authentication, and target-matched adapter tests pass for Fastly, Axum, Cloudflare, and Spin.

Related

#840; #841; upstream IABTechLab/edgezero#305; PR #839.

Activity

  1. self-assigned this
    on Jul 2, 2026
  2. added
    rustPull requests that update rust code
    and removed
    rustPull requests that update rust code
    on Jul 2, 2026
  3. added theissue type on Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions