Skip to content

Expose JA4 through a standard request interface #283

Open

Description

@ChristianPavilonis

Description

Expose the incoming request’s JA4 fingerprint through a standard EdgeZero interface. The existing Fastly raw-request hook lets applications define their own extension type, but does not provide a neutral JA4 type or cross-adapter API.

Steps to reproduce

Inspection steps (no provider request executed):

  1. Read Fastly raw-request hook guidance.
  2. Observe that the example defines an application-local Ja4(String) and calls the raw Fastly SDK.
  3. Look for an equivalent neutral accessor and adapter population contract; none is present on main.

Expected behavior

Handlers and middleware can read optional JA4 metadata through one documented interface, with explicit unavailable behavior where a provider cannot supply it.

Impact

Applications duplicate provider-specific extraction and cannot consistently consume JA4 across adapters.

Proposed fix

Define a neutral optional JA4 request metadata/accessor contract and populate it from supported provider signals. Preserve provenance and absence semantics; do not infer a fingerprint from ordinary client-supplied headers.

Done when

  • Add and document the standard JA4 interface.
  • Populate it on adapters whose trusted provider APIs expose JA4.
  • Return explicit absence/unsupported behavior on other adapters.
  • Cover present, absent and unsupported metadata paths with adapter/core tests.

Related

PR #306 supplies the Fastly extension hook only; it is related, not a closing implementation.

Activity

  1. changed the title [-]Expose JA4 through standard interface[/-] [+]Expose JA4 through a standard interface[/+] on Jun 22, 2026
  2. added this to the 202611 milestone on Nov 5, 2026
  3. changed the title [-]Expose JA4 through a standard interface[/-] [+]Expose JA4 through a standard request interface[/+] on Nov 9, 2026
  4. aram356 commented on Nov 10, 2026

    @aram356
    Collaborator

    Explore foxio for potential integration

  5. aram356 commented on Nov 13, 2026

    @aram356
    Collaborator

    CREATOR: This issue is now part of #468, server-side identity on every adapter. It is planned in wave 3 (MVP: Fastly and Axum); priority P1, size M.

    Blocked by:

    Blocks:

    Related pull requests:

    Design: spec; order and dependencies: plan.

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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions